1*c8dee2aaSAndroid Build Coastguard Worker /*
2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2013 Google Inc.
3*c8dee2aaSAndroid Build Coastguard Worker *
4*c8dee2aaSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be
5*c8dee2aaSAndroid Build Coastguard Worker * found in the LICENSE file.
6*c8dee2aaSAndroid Build Coastguard Worker */
7*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkPath.h"
8*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkPathTypes.h"
9*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkString.h"
10*c8dee2aaSAndroid Build Coastguard Worker #include "include/pathops/SkPathOps.h"
11*c8dee2aaSAndroid Build Coastguard Worker #include "tests/PathOpsExtendedTest.h"
12*c8dee2aaSAndroid Build Coastguard Worker #include "tests/Test.h"
13*c8dee2aaSAndroid Build Coastguard Worker
DEF_TEST(PathOpsInverse,reporter)14*c8dee2aaSAndroid Build Coastguard Worker DEF_TEST(PathOpsInverse, reporter) {
15*c8dee2aaSAndroid Build Coastguard Worker const SkPathDirection dirs[] = {SkPathDirection::kCW, SkPathDirection::kCCW};
16*c8dee2aaSAndroid Build Coastguard Worker const SkPathFillType fts[] = {
17*c8dee2aaSAndroid Build Coastguard Worker SkPathFillType::kWinding, SkPathFillType::kEvenOdd,
18*c8dee2aaSAndroid Build Coastguard Worker SkPathFillType::kInverseWinding, SkPathFillType::kInverseEvenOdd
19*c8dee2aaSAndroid Build Coastguard Worker };
20*c8dee2aaSAndroid Build Coastguard Worker SkPath one, two;
21*c8dee2aaSAndroid Build Coastguard Worker int testCount = 0;
22*c8dee2aaSAndroid Build Coastguard Worker for (int op = kDifference_SkPathOp; op <= kReverseDifference_SkPathOp; ++op) {
23*c8dee2aaSAndroid Build Coastguard Worker for (auto oneFill : fts) {
24*c8dee2aaSAndroid Build Coastguard Worker for (auto oneDir : dirs) {
25*c8dee2aaSAndroid Build Coastguard Worker one.reset();
26*c8dee2aaSAndroid Build Coastguard Worker one.setFillType(oneFill);
27*c8dee2aaSAndroid Build Coastguard Worker one.addRect(0, 0, 6, 6, oneDir);
28*c8dee2aaSAndroid Build Coastguard Worker for (auto twoFill : fts) {
29*c8dee2aaSAndroid Build Coastguard Worker for (auto twoDir : dirs) {
30*c8dee2aaSAndroid Build Coastguard Worker two.reset();
31*c8dee2aaSAndroid Build Coastguard Worker two.setFillType(twoFill);
32*c8dee2aaSAndroid Build Coastguard Worker two.addRect(3, 3, 9, 9, twoDir);
33*c8dee2aaSAndroid Build Coastguard Worker SkString testName;
34*c8dee2aaSAndroid Build Coastguard Worker testName.printf("inverseTest%d", ++testCount);
35*c8dee2aaSAndroid Build Coastguard Worker testPathOp(reporter, one, two, (SkPathOp) op, testName.c_str());
36*c8dee2aaSAndroid Build Coastguard Worker }
37*c8dee2aaSAndroid Build Coastguard Worker }
38*c8dee2aaSAndroid Build Coastguard Worker }
39*c8dee2aaSAndroid Build Coastguard Worker }
40*c8dee2aaSAndroid Build Coastguard Worker }
41*c8dee2aaSAndroid Build Coastguard Worker }
42