static bool innerPathOp(skiatest::Reporter* reporter, const SkPath& a, const SkPath& b, const SkPathOp shapeOp, const char* testName, bool threaded) { #if DEBUG_SHOW_TEST_NAME if (testName == NULL) { SkDebugf("\n"); showPathData(a); showOp(shapeOp); showPathData(b); } else { SkPathOpsDebug::ShowPath(a, b, shapeOp, testName); } #endif SkPath out; if (!Op(a, b, shapeOp, &out) ) { SkDebugf("%s did not expect failure\n", __FUNCTION__); REPORTER_ASSERT(reporter, 0); return false; } if (threaded && !reporter->verbose()) { return true; } SkPath pathOut, scaledPathOut; SkRegion rgnA, rgnB, openClip, rgnOut; openClip.setRect(-16000, -16000, 16000, 16000); rgnA.setPath(a, openClip); rgnB.setPath(b, openClip); rgnOut.op(rgnA, rgnB, (SkRegion::Op) shapeOp); rgnOut.getBoundaryPath(&pathOut); SkMatrix scale; scaleMatrix(a, b, scale); SkRegion scaledRgnA, scaledRgnB, scaledRgnOut; SkPath scaledA, scaledB; scaledA.addPath(a, scale); scaledA.setFillType(a.getFillType()); scaledB.addPath(b, scale); scaledB.setFillType(b.getFillType()); scaledRgnA.setPath(scaledA, openClip); scaledRgnB.setPath(scaledB, openClip); scaledRgnOut.op(scaledRgnA, scaledRgnB, (SkRegion::Op) shapeOp); scaledRgnOut.getBoundaryPath(&scaledPathOut); SkBitmap bitmap; SkPath scaledOut; scaledOut.addPath(out, scale); scaledOut.setFillType(out.getFillType()); int result = comparePaths(reporter, pathOut, scaledPathOut, out, scaledOut, bitmap, a, b, shapeOp, scale); if (result && gPathStrAssert) { REPORTER_ASSERT(reporter, 0); } reporter->bumpTestCount(); return result == 0; }
static bool inner_simplify(skiatest::Reporter* reporter, const SkPath& path, const char* filename, ExpectSuccess expectSuccess, SkipAssert skipAssert, ExpectMatch expectMatch) { #if 0 && DEBUG_SHOW_TEST_NAME showPathData(path); #endif SkPath out; if (!SimplifyDebug(path, &out SkDEBUGPARAMS(SkipAssert::kYes == skipAssert) SkDEBUGPARAMS(testName))) { if (ExpectSuccess::kYes == expectSuccess) { SkDebugf("%s did not expect %s failure\n", __FUNCTION__, filename); REPORTER_ASSERT(reporter, 0); } return false; } else { if (ExpectSuccess::kNo == expectSuccess) { SkDebugf("%s %s unexpected success\n", __FUNCTION__, filename); REPORTER_ASSERT(reporter, 0); } } SkBitmap bitmap; int errors = comparePaths(reporter, filename, path, out, bitmap); if (ExpectMatch::kNo == expectMatch) { if (!errors) { SkDebugf("%s failing test %s now succeeds\n", __FUNCTION__, filename); REPORTER_ASSERT(reporter, 0); return false; } } else if (errors) { REPORTER_ASSERT(reporter, 0); } reporter->bumpTestCount(); return errors == 0; }
static bool inner_simplify(skiatest::Reporter* reporter, const SkPath& path, const char* filename, bool checkFail) { #if 0 && DEBUG_SHOW_TEST_NAME showPathData(path); #endif SkPath out; if (!Simplify(path, &out)) { SkDebugf("%s did not expect %s failure\n", __FUNCTION__, filename); REPORTER_ASSERT(reporter, 0); return false; } SkBitmap bitmap; int errors = comparePaths(reporter, filename, path, out, bitmap); if (!checkFail) { if (!errors) { SkDebugf("%s failing test %s now succeeds\n", __FUNCTION__, filename); REPORTER_ASSERT(reporter, 0); return false; } } else if (errors) { REPORTER_ASSERT(reporter, 0); } reporter->bumpTestCount(); return errors == 0; }
bool testSimplify(skiatest::Reporter* reporter, const SkPath& path, const char* filename) { #if DEBUG_SHOW_TEST_NAME showPathData(path); #endif SkPath out; if (!Simplify(path, &out)) { SkDebugf("%s did not expect failure\n", __FUNCTION__); REPORTER_ASSERT(reporter, 0); return false; } SkBitmap bitmap; int result = comparePaths(reporter, filename, path, out, bitmap); if (result && gPathStrAssert) { REPORTER_ASSERT(reporter, 0); } reporter->bumpTestCount(); return result == 0; }
static void showName(const SkPath& a, const SkPath& b, const SkPathOp shapeOp) { SkDebugf("\n"); showPathData(a); showOp(shapeOp); showPathData(b); }