static int comparePaths(skiatest::Reporter* reporter, const char* testName, const SkPath& one, const SkPath& scaledOne, const SkPath& two, const SkPath& scaledTwo, SkBitmap& bitmap, const SkPath& a, const SkPath& b, const SkPathOp shapeOp, const SkMatrix& scale, bool expectSuccess) { int errors2x2; const int MAX_ERRORS = 8; (void) pathsDrawTheSame(bitmap, scaledOne, scaledTwo, errors2x2); if (!expectSuccess) { if (errors2x2 <= MAX_ERRORS) { REPORTER_ASSERT(reporter, 0); } return 0; } if (errors2x2 == 0) { return 0; } if (errors2x2 > MAX_ERRORS) { SkAutoMutexAcquire autoM(compareDebugOut3); showPathOpPath(testName, one, two, a, b, scaledOne, scaledTwo, shapeOp, scale); SkDebugf("\n/*"); REPORTER_ASSERT(reporter, 0); SkDebugf(" */\n"); } else if (errors2x2 == MAX_ERRORS || errors2x2 == MAX_ERRORS - 1) { SkAutoMutexAcquire autoM(compareDebugOut4); showPathOpPath(testName, one, two, a, b, scaledOne, scaledTwo, shapeOp, scale); } return errors2x2 > MAX_ERRORS ? errors2x2 : 0; }
static int comparePaths(skiatest::Reporter* reporter, const SkPath& one, const SkPath& scaledOne, const SkPath& two, const SkPath& scaledTwo, SkBitmap& bitmap, const SkPath& a, const SkPath& b, const SkPathOp shapeOp, const SkMatrix& scale) { int errors2x2; int errors = pathsDrawTheSame(bitmap, scaledOne, scaledTwo, errors2x2); if (errors2x2 == 0) { if (gShowPath) { showPathOpPath(one, two, a, b, scaledOne, scaledTwo, shapeOp, scale); } return 0; } const int MAX_ERRORS = 8; if (gShowPath || errors2x2 == MAX_ERRORS || errors2x2 == MAX_ERRORS - 1) { showPathOpPath(one, two, a, b, scaledOne, scaledTwo, shapeOp, scale); } if (errors2x2 > MAX_ERRORS && gComparePathsAssert) { SkDebugf("%s errors=%d\n", __FUNCTION__, errors); showPathOpPath(one, two, a, b, scaledOne, scaledTwo, shapeOp, scale); REPORTER_ASSERT(reporter, 0); } return errors2x2 > MAX_ERRORS ? errors2x2 : 0; }
static int comparePaths(skiatest::Reporter* reporter, const char* testName, const SkPath& one, const SkPath& scaledOne, const SkPath& two, const SkPath& scaledTwo, SkBitmap& bitmap, const SkPath& a, const SkPath& b, const SkPathOp shapeOp, const SkMatrix& scale) { int errors2x2; (void) pathsDrawTheSame(bitmap, scaledOne, scaledTwo, errors2x2); if (errors2x2 == 0) { if (gShowPath) { showPathOpPath(testName, one, two, a, b, scaledOne, scaledTwo, shapeOp, scale); } return 0; } const int MAX_ERRORS = 8; if (errors2x2 > MAX_ERRORS && gComparePathsAssert) { SkAutoMutexAcquire autoM(compareDebugOut3); SkDebugf("\n*** this test fails ***\n"); showPathOpPath(testName, one, two, a, b, scaledOne, scaledTwo, shapeOp, scale); REPORTER_ASSERT(reporter, 0); } else if (gShowPath || errors2x2 == MAX_ERRORS || errors2x2 == MAX_ERRORS - 1) { SkAutoMutexAcquire autoM(compareDebugOut4); showPathOpPath(testName, one, two, a, b, scaledOne, scaledTwo, shapeOp, scale); } return errors2x2 > MAX_ERRORS ? errors2x2 : 0; }