xref: /aosp_15_r20/external/skia/tests/PathOpsExtendedTest.h (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker /*
2*c8dee2aaSAndroid Build Coastguard Worker  * Copyright 2012 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 #ifndef PathOpsExtendedTest_DEFINED
8*c8dee2aaSAndroid Build Coastguard Worker #define PathOpsExtendedTest_DEFINED
9*c8dee2aaSAndroid Build Coastguard Worker 
10*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkBitmap.h"
11*c8dee2aaSAndroid Build Coastguard Worker #include "include/pathops/SkPathOps.h"
12*c8dee2aaSAndroid Build Coastguard Worker 
13*c8dee2aaSAndroid Build Coastguard Worker #include <cstddef>
14*c8dee2aaSAndroid Build Coastguard Worker 
15*c8dee2aaSAndroid Build Coastguard Worker class SkPath;
16*c8dee2aaSAndroid Build Coastguard Worker namespace skiatest { class Reporter; }
17*c8dee2aaSAndroid Build Coastguard Worker struct PathOpsThreadState;
18*c8dee2aaSAndroid Build Coastguard Worker 
19*c8dee2aaSAndroid Build Coastguard Worker struct TestDesc {
20*c8dee2aaSAndroid Build Coastguard Worker     void (*fun)(skiatest::Reporter*, const char* filename);
21*c8dee2aaSAndroid Build Coastguard Worker     const char* str;
22*c8dee2aaSAndroid Build Coastguard Worker };
23*c8dee2aaSAndroid Build Coastguard Worker 
24*c8dee2aaSAndroid Build Coastguard Worker //extern int comparePaths(const SkPath& one, const SkPath& two);
25*c8dee2aaSAndroid Build Coastguard Worker extern int comparePaths(skiatest::Reporter* reporter, const char* filename,
26*c8dee2aaSAndroid Build Coastguard Worker                         const SkPath& one, const SkPath& two, SkBitmap& bitmap);
27*c8dee2aaSAndroid Build Coastguard Worker 
comparePaths(skiatest::Reporter * reporter,const char * filename,const SkPath & one,const SkPath & two)28*c8dee2aaSAndroid Build Coastguard Worker inline int comparePaths(skiatest::Reporter* reporter, const char* filename,
29*c8dee2aaSAndroid Build Coastguard Worker                         const SkPath& one, const SkPath& two) {
30*c8dee2aaSAndroid Build Coastguard Worker     SkBitmap bitmap;
31*c8dee2aaSAndroid Build Coastguard Worker     return comparePaths(reporter, filename, one, two, bitmap);
32*c8dee2aaSAndroid Build Coastguard Worker }
33*c8dee2aaSAndroid Build Coastguard Worker 
34*c8dee2aaSAndroid Build Coastguard Worker extern bool drawAsciiPaths(const SkPath& one, const SkPath& two, bool drawPaths);
35*c8dee2aaSAndroid Build Coastguard Worker extern void markTestFlakyForPathKit();
36*c8dee2aaSAndroid Build Coastguard Worker extern void showOp(const SkPathOp op);
37*c8dee2aaSAndroid Build Coastguard Worker extern bool testPathOp(skiatest::Reporter* reporter, const SkPath& a, const SkPath& b,
38*c8dee2aaSAndroid Build Coastguard Worker                        const SkPathOp , const char* testName);
39*c8dee2aaSAndroid Build Coastguard Worker extern bool testPathOpCheck(skiatest::Reporter* reporter, const SkPath& a, const SkPath& b,
40*c8dee2aaSAndroid Build Coastguard Worker                             const SkPathOp , const char* testName, bool checkFail);
41*c8dee2aaSAndroid Build Coastguard Worker extern bool testPathOpFail(skiatest::Reporter* reporter, const SkPath& a, const SkPath& b,
42*c8dee2aaSAndroid Build Coastguard Worker                            const SkPathOp, const char* testName);
43*c8dee2aaSAndroid Build Coastguard Worker extern bool testPathOpFuzz(skiatest::Reporter* reporter, const SkPath& a, const SkPath& b,
44*c8dee2aaSAndroid Build Coastguard Worker                            const SkPathOp , const char* testName);
45*c8dee2aaSAndroid Build Coastguard Worker extern bool testSimplify(SkPath& path, bool useXor, SkPath& out, PathOpsThreadState& state,
46*c8dee2aaSAndroid Build Coastguard Worker                          const char* pathStr);
47*c8dee2aaSAndroid Build Coastguard Worker extern bool testSimplify(skiatest::Reporter* reporter, const SkPath& path, const char* filename);
48*c8dee2aaSAndroid Build Coastguard Worker extern bool testSimplifyCheck(skiatest::Reporter* reporter, const SkPath& path,
49*c8dee2aaSAndroid Build Coastguard Worker                               const char* filename, bool checkFail);
50*c8dee2aaSAndroid Build Coastguard Worker extern bool testSimplifyFail(skiatest::Reporter* reporter, const SkPath& path,
51*c8dee2aaSAndroid Build Coastguard Worker                              const char* filename);
52*c8dee2aaSAndroid Build Coastguard Worker extern bool testSimplifyFuzz(skiatest::Reporter* reporter, const SkPath& path,
53*c8dee2aaSAndroid Build Coastguard Worker                              const char* filename);
54*c8dee2aaSAndroid Build Coastguard Worker 
55*c8dee2aaSAndroid Build Coastguard Worker void initializeTests(skiatest::Reporter* reporter, const char* testName);
56*c8dee2aaSAndroid Build Coastguard Worker 
57*c8dee2aaSAndroid Build Coastguard Worker void RunTestSet(skiatest::Reporter* reporter, TestDesc tests[], size_t count,
58*c8dee2aaSAndroid Build Coastguard Worker                 void (*firstTest)(skiatest::Reporter* , const char* filename),
59*c8dee2aaSAndroid Build Coastguard Worker                 void (*skipTest)(skiatest::Reporter* , const char* filename),
60*c8dee2aaSAndroid Build Coastguard Worker                 void (*stopTest)(skiatest::Reporter* , const char* filename), bool reverse);
61*c8dee2aaSAndroid Build Coastguard Worker void ShowFunctionHeader(const char* name);
62*c8dee2aaSAndroid Build Coastguard Worker void ShowPath(const SkPath& path, const char* pathName);
63*c8dee2aaSAndroid Build Coastguard Worker void ShowOp(SkPathOp op, const char* pathOne, const char* pathTwo);
64*c8dee2aaSAndroid Build Coastguard Worker 
65*c8dee2aaSAndroid Build Coastguard Worker #endif
66