diff options
Diffstat (limited to 'tests/PathOpsOpCubicThreadedTest.cpp')
-rw-r--r-- | tests/PathOpsOpCubicThreadedTest.cpp | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/tests/PathOpsOpCubicThreadedTest.cpp b/tests/PathOpsOpCubicThreadedTest.cpp index 0ccb89d8e8..99e68daae6 100644 --- a/tests/PathOpsOpCubicThreadedTest.cpp +++ b/tests/PathOpsOpCubicThreadedTest.cpp @@ -15,7 +15,10 @@ static void testOpCubicsMain(PathOpsThreadState* data) SkASSERT(data); PathOpsThreadState& state = *data; char pathStr[1024]; // gdb: set print elements 400 - sk_bzero(pathStr, sizeof(pathStr)); + bool progress = state.fReporter->verbose(); // FIXME: break out into its own parameter? + if (progress) { + sk_bzero(pathStr, sizeof(pathStr)); + } for (int a = 0 ; a < 6; ++a) { for (int b = a + 1 ; b < 7; ++b) { for (int c = 0 ; c < 6; ++c) { @@ -23,34 +26,38 @@ static void testOpCubicsMain(PathOpsThreadState* data) for (int e = SkPath::kWinding_FillType ; e <= SkPath::kEvenOdd_FillType; ++e) { for (int f = SkPath::kWinding_FillType ; f <= SkPath::kEvenOdd_FillType; ++f) { SkPath pathA, pathB; - char* str = pathStr; + if (progress) { + char* str = pathStr; + str += sprintf(str, " path.setFillType(SkPath::k%s_FillType);\n", + e == SkPath::kWinding_FillType ? "Winding" : e == SkPath::kEvenOdd_FillType + ? "EvenOdd" : "?UNDEFINED"); + str += sprintf(str, " path.moveTo(%d,%d);\n", state.fA, state.fB); + str += sprintf(str, " path.cubicTo(%d,%d, %d,%d, %d,%d);\n", state.fC, state.fD, + b, a, d, c); + str += sprintf(str, " path.close();\n"); + str += sprintf(str, " pathB.setFillType(SkPath::k%s_FillType);\n", + f == SkPath::kWinding_FillType ? "Winding" : f == SkPath::kEvenOdd_FillType + ? "EvenOdd" : "?UNDEFINED"); + str += sprintf(str, " pathB.moveTo(%d,%d);\n", a, b); + str += sprintf(str, " pathB.cubicTo(%d,%d, %d,%d, %d,%d);\n", c, d, + state.fB, state.fA, state.fD, state.fC); + str += sprintf(str, " pathB.close();\n"); + } pathA.setFillType((SkPath::FillType) e); - str += sprintf(str, " path.setFillType(SkPath::k%s_FillType);\n", - e == SkPath::kWinding_FillType ? "Winding" : e == SkPath::kEvenOdd_FillType - ? "EvenOdd" : "?UNDEFINED"); pathA.moveTo(SkIntToScalar(state.fA), SkIntToScalar(state.fB)); - str += sprintf(str, " path.moveTo(%d,%d);\n", state.fA, state.fB); pathA.cubicTo(SkIntToScalar(state.fC), SkIntToScalar(state.fD), SkIntToScalar(b), SkIntToScalar(a), SkIntToScalar(d), SkIntToScalar(c)); - str += sprintf(str, " path.cubicTo(%d,%d, %d,%d, %d,%d);\n", state.fC, state.fD, - b, a, d, c); pathA.close(); - str += sprintf(str, " path.close();\n"); pathB.setFillType((SkPath::FillType) f); - str += sprintf(str, " pathB.setFillType(SkPath::k%s_FillType);\n", - f == SkPath::kWinding_FillType ? "Winding" : f == SkPath::kEvenOdd_FillType - ? "EvenOdd" : "?UNDEFINED"); pathB.moveTo(SkIntToScalar(a), SkIntToScalar(b)); - str += sprintf(str, " pathB.moveTo(%d,%d);\n", a, b); pathB.cubicTo(SkIntToScalar(c), SkIntToScalar(d), SkIntToScalar(state.fB), SkIntToScalar(state.fA), SkIntToScalar(state.fD), SkIntToScalar(state.fC)); - str += sprintf(str, " pathB.cubicTo(%d,%d, %d,%d, %d,%d);\n", c, d, - state.fB, state.fA, state.fD, state.fC); pathB.close(); - str += sprintf(str, " pathB.close();\n"); for (int op = 0 ; op <= kXOR_PathOp; ++op) { - outputProgress(state.fPathStr, pathStr, (SkPathOp) op); - testPathOp(state.fReporter, pathA, pathB, (SkPathOp) op); + if (progress) { + outputProgress(state.fPathStr, pathStr, (SkPathOp) op); + } + testThreadedPathOp(state.fReporter, pathA, pathB, (SkPathOp) op); } } } |