| Index: tests/PathOpsOpTest.cpp
|
| diff --git a/tests/PathOpsOpTest.cpp b/tests/PathOpsOpTest.cpp
|
| index 08dff90c2920fae7f59930c75bd0300e3c02879c..48ed866a904d085c23c1acc7ecf212c24ab2712e 100644
|
| --- a/tests/PathOpsOpTest.cpp
|
| +++ b/tests/PathOpsOpTest.cpp
|
| @@ -1144,6 +1144,7 @@ static void cubicOp69d(skiatest::Reporter* reporter) {
|
| testPathOp(reporter, path, pathB, kDifference_PathOp);
|
| }
|
|
|
| +
|
| SkPathOp ops[] = {
|
| kUnion_PathOp,
|
| kXOR_PathOp,
|
| @@ -1343,9 +1344,175 @@ static void cubicOp70d(skiatest::Reporter* reporter) {
|
| testPathOp(reporter, path, pathB, kDifference_PathOp);
|
| }
|
|
|
| -static void (*firstTest)(skiatest::Reporter* ) = 0;
|
| +static void cubicOp71d(skiatest::Reporter* reporter) {
|
| + SkPath path, pathB;
|
| + path.setFillType(SkPath::kWinding_FillType);
|
| + path.moveTo(0,1);
|
| + path.cubicTo(0,5, 4,1, 6,4);
|
| + path.close();
|
| + pathB.setFillType(SkPath::kWinding_FillType);
|
| + pathB.moveTo(1,4);
|
| + pathB.cubicTo(4,6, 1,0, 5,0);
|
| + pathB.close();
|
| + testPathOp(reporter, path, pathB, kDifference_PathOp);
|
| +}
|
| +
|
| +static void cubicOp72i(skiatest::Reporter* reporter) {
|
| + SkPath path, pathB;
|
| + path.setFillType(SkPath::kWinding_FillType);
|
| + path.moveTo(0,1);
|
| + path.cubicTo(0,5, 5,2, 5,4);
|
| + path.close();
|
| + pathB.setFillType(SkPath::kWinding_FillType);
|
| + pathB.moveTo(2,5);
|
| + pathB.cubicTo(4,5, 1,0, 5,0);
|
| + pathB.close();
|
| + testPathOp(reporter, path, pathB, kIntersect_PathOp);
|
| +}
|
| +
|
| +static void cubicOp73d(skiatest::Reporter* reporter) {
|
| + SkPath path, pathB;
|
| + path.setFillType(SkPath::kWinding_FillType);
|
| + path.moveTo(0,1);
|
| + path.cubicTo(3,4, 4,0, 6,4);
|
| + path.lineTo(0,1);
|
| + path.close();
|
| + pathB.setFillType(SkPath::kWinding_FillType);
|
| + pathB.moveTo(0,4);
|
| + pathB.cubicTo(4,6, 1,0, 4,3);
|
| + pathB.lineTo(0,4);
|
| + pathB.close();
|
| + testPathOp(reporter, path, pathB, kDifference_PathOp);
|
| +}
|
| +
|
| +static void cubicOp75d(skiatest::Reporter* reporter) {
|
| + SkPath path, pathB;
|
| + path.setFillType(SkPath::kWinding_FillType);
|
| + path.moveTo(0,1);
|
| + path.cubicTo(0,4, 5,1, 6,4);
|
| + path.lineTo(0,1);
|
| + path.close();
|
| + pathB.setFillType(SkPath::kWinding_FillType);
|
| + pathB.moveTo(1,5);
|
| + pathB.cubicTo(4,6, 1,0, 4,0);
|
| + pathB.lineTo(1,5);
|
| + pathB.close();
|
| + testPathOp(reporter, path, pathB, kDifference_PathOp);
|
| +}
|
| +
|
| +static void cubicOp77i(skiatest::Reporter* reporter) {
|
| + SkPath path, pathB;
|
| + path.setFillType(SkPath::kEvenOdd_FillType);
|
| + path.moveTo(0,1);
|
| + path.cubicTo(1,3, 2,0, 3,2);
|
| + path.lineTo(0,1);
|
| + path.close();
|
| + pathB.setFillType(SkPath::kEvenOdd_FillType);
|
| + pathB.moveTo(0,2);
|
| + pathB.cubicTo(2,3, 1,0, 3,1);
|
| + pathB.lineTo(0,2);
|
| + pathB.close();
|
| + testPathOp(reporter, path, pathB, kIntersect_PathOp);
|
| +}
|
| +
|
| +static void cubicOp78u(skiatest::Reporter* reporter) {
|
| + SkPath path, pathB;
|
| + path.setFillType(SkPath::kEvenOdd_FillType);
|
| + path.moveTo(1,6);
|
| + path.cubicTo(1,6, 5,0, 6,1);
|
| + path.lineTo(1,6);
|
| + path.close();
|
| + pathB.setFillType(SkPath::kEvenOdd_FillType);
|
| + pathB.moveTo(0,5);
|
| + pathB.cubicTo(1,6, 6,1, 6,1);
|
| + pathB.lineTo(0,5);
|
| + pathB.close();
|
| + testPathOp(reporter, path, pathB, kUnion_PathOp);
|
| +}
|
| +
|
| +static void cubicOp79d(skiatest::Reporter* reporter) {
|
| + SkPath path, pathB;
|
| + path.setFillType(SkPath::kWinding_FillType);
|
| + path.moveTo(0,2);
|
| + path.cubicTo(0,1, 3,-0.1f, 1,0);
|
| + path.close();
|
| + pathB.setFillType(SkPath::kWinding_FillType);
|
| + pathB.moveTo(0,3);
|
| + pathB.cubicTo(0,1, 2,0, 1,0);
|
| + pathB.close();
|
| + testPathOp(reporter, path, pathB, kDifference_PathOp);
|
| +}
|
| +
|
| +static void cubicOp79u(skiatest::Reporter* reporter) {
|
| + SkPath path, pathB;
|
| + path.setFillType(SkPath::kWinding_FillType);
|
| + path.moveTo(0,1);
|
| + path.cubicTo(1,3, 1,0, 6,4);
|
| + path.close();
|
| + pathB.setFillType(SkPath::kWinding_FillType);
|
| + pathB.moveTo(0,1);
|
| + pathB.cubicTo(4,6, 1,0, 3,1);
|
| + pathB.close();
|
| + testPathOp(reporter, path, pathB, kIntersect_PathOp);
|
| +}
|
| +
|
| +static void cubicOp80i(skiatest::Reporter* reporter) {
|
| + SkPath path, pathB;
|
| + path.setFillType(SkPath::kWinding_FillType);
|
| + path.moveTo(0,1);
|
| + path.cubicTo(2,3, 2,1, 4,3);
|
| + path.lineTo(0,1);
|
| + path.close();
|
| + pathB.setFillType(SkPath::kWinding_FillType);
|
| + pathB.moveTo(1,2);
|
| + pathB.cubicTo(3,4, 1,0, 3,2);
|
| + pathB.lineTo(1,2);
|
| + pathB.close();
|
| + testPathOp(reporter, path, pathB, kIntersect_PathOp);
|
| +}
|
| +
|
| +static void cubicOp82i(skiatest::Reporter* reporter) {
|
| + SkPath path, pathB;
|
| + path.setFillType(SkPath::kEvenOdd_FillType);
|
| + path.moveTo(0,1);
|
| + path.cubicTo(2,3, 5,2, 3,0);
|
| + path.lineTo(0,1);
|
| + path.close();
|
| + pathB.setFillType(SkPath::kWinding_FillType);
|
| + pathB.moveTo(2,5);
|
| + pathB.cubicTo(0,3, 1,0, 3,2);
|
| + pathB.lineTo(2,5);
|
| + pathB.close();
|
| + testPathOp(reporter, path, pathB, kIntersect_PathOp);
|
| +}
|
| +
|
| +static void cubicOp81d(skiatest::Reporter* reporter) {
|
| + SkPath path, pathB;
|
| + path.setFillType(SkPath::kWinding_FillType);
|
| + path.moveTo(0,1);
|
| + path.cubicTo(4,6, 4,3, 5,4);
|
| + path.close();
|
| + pathB.setFillType(SkPath::kWinding_FillType);
|
| + pathB.moveTo(3,4);
|
| + pathB.cubicTo(4,5, 1,0, 6,4);
|
| + pathB.close();
|
| + testPathOp(reporter, path, pathB, kDifference_PathOp);
|
| +}
|
| +
|
| +static void (*firstTest)(skiatest::Reporter* ) = cubicOp81d;
|
|
|
| static struct TestDesc tests[] = {
|
| + TEST(cubicOp82i),
|
| + TEST(cubicOp81d),
|
| + TEST(cubicOp80i),
|
| + TEST(cubicOp79u),
|
| + TEST(cubicOp79d),
|
| + TEST(cubicOp78u),
|
| + TEST(cubicOp77i),
|
| + TEST(cubicOp75d),
|
| + TEST(cubicOp73d),
|
| + TEST(cubicOp72i),
|
| + TEST(cubicOp71d),
|
| TEST(skp5),
|
| TEST(skp4),
|
| TEST(skp3),
|
|
|