Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: src/pathops/SkPathOpsDebug.h

Issue 1037573004: cumulative pathops patch (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix pathopsinverse gm Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/pathops/SkPathOpsCubicSect.h ('k') | src/pathops/SkPathOpsDebug.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 #ifndef SkPathOpsDebug_DEFINED 7 #ifndef SkPathOpsDebug_DEFINED
8 #define SkPathOpsDebug_DEFINED 8 #define SkPathOpsDebug_DEFINED
9 9
10 #include "SkPathOps.h" 10 #include "SkPathOps.h"
(...skipping 21 matching lines...) Expand all
32 #endif 32 #endif
33 33
34 #define WIND_AS_STRING(x) char x##Str[12]; \ 34 #define WIND_AS_STRING(x) char x##Str[12]; \
35 if (!SkPathOpsDebug::ValidWind(x)) strcpy(x##Str, "?"); \ 35 if (!SkPathOpsDebug::ValidWind(x)) strcpy(x##Str, "?"); \
36 else SK_SNPRINTF(x##Str, sizeof(x##Str), "%d", x) 36 else SK_SNPRINTF(x##Str, sizeof(x##Str), "%d", x)
37 37
38 #if FORCE_RELEASE 38 #if FORCE_RELEASE
39 39
40 #define DEBUG_ACTIVE_OP 0 40 #define DEBUG_ACTIVE_OP 0
41 #define DEBUG_ACTIVE_SPANS 0 41 #define DEBUG_ACTIVE_SPANS 0
42 #define DEBUG_ACTIVE_SPANS_FIRST_ONLY 0
43 #define DEBUG_ACTIVE_SPANS_SHORT_FORM 1
44 #define DEBUG_ADD_INTERSECTING_TS 0 42 #define DEBUG_ADD_INTERSECTING_TS 0
45 #define DEBUG_ADD_T_PAIR 0 43 #define DEBUG_ADD_T 0
46 #define DEBUG_ANGLE 0 44 #define DEBUG_ANGLE 0
47 #define DEBUG_AS_C_CODE 1
48 #define DEBUG_ASSEMBLE 0 45 #define DEBUG_ASSEMBLE 0
49 #define DEBUG_CHECK_ALIGN 0
50 #define DEBUG_CHECK_TINY 0
51 #define DEBUG_CONCIDENT 0
52 #define DEBUG_CROSS 0
53 #define DEBUG_CUBIC_BINARY_SEARCH 0 46 #define DEBUG_CUBIC_BINARY_SEARCH 0
54 #define DEBUG_DUPLICATES 0
55 #define DEBUG_FLAT_QUADS 0
56 #define DEBUG_FLOW 0 47 #define DEBUG_FLOW 0
57 #define DEBUG_LIMIT_WIND_SUM 0 48 #define DEBUG_LIMIT_WIND_SUM 0
58 #define DEBUG_MARK_DONE 0 49 #define DEBUG_MARK_DONE 0
59 #define DEBUG_PATH_CONSTRUCTION 0 50 #define DEBUG_PATH_CONSTRUCTION 0
51 #define DEBUG_PERP 0
60 #define DEBUG_SHOW_TEST_NAME 0 52 #define DEBUG_SHOW_TEST_NAME 0
61 #define DEBUG_SHOW_TEST_PROGRESS 0
62 #define DEBUG_SHOW_WINDING 0
63 #define DEBUG_SORT 0 53 #define DEBUG_SORT 0
64 #define DEBUG_SORT_COMPACT 0
65 #define DEBUG_SORT_RAW 0
66 #define DEBUG_SORT_SINGLE 0
67 #define DEBUG_SWAP_TOP 0 54 #define DEBUG_SWAP_TOP 0
68 #define DEBUG_UNSORTABLE 0 55 #define DEBUG_T_SECT 0
56 #define DEBUG_T_SECT_DUMP 0
69 #define DEBUG_VALIDATE 0 57 #define DEBUG_VALIDATE 0
70 #define DEBUG_WIND_BUMP 0
71 #define DEBUG_WINDING 0 58 #define DEBUG_WINDING 0
72 #define DEBUG_WINDING_AT_T 0 59 #define DEBUG_WINDING_AT_T 0
73 60
74 #else 61 #else
75 62
76 #define DEBUG_ACTIVE_OP 1 63 #define DEBUG_ACTIVE_OP 1
77 #define DEBUG_ACTIVE_SPANS 1 64 #define DEBUG_ACTIVE_SPANS 1
78 #define DEBUG_ACTIVE_SPANS_FIRST_ONLY 0
79 #define DEBUG_ACTIVE_SPANS_SHORT_FORM 1
80 #define DEBUG_ADD_INTERSECTING_TS 1 65 #define DEBUG_ADD_INTERSECTING_TS 1
81 #define DEBUG_ADD_T_PAIR 1 66 #define DEBUG_ADD_T 1
82 #define DEBUG_ANGLE 1 67 #define DEBUG_ANGLE 1
83 #define DEBUG_AS_C_CODE 1
84 #define DEBUG_ASSEMBLE 1 68 #define DEBUG_ASSEMBLE 1
85 #define DEBUG_CHECK_ALIGN 1
86 #define DEBUG_CHECK_TINY 1
87 #define DEBUG_CONCIDENT 1
88 #define DEBUG_CROSS 01
89 #define DEBUG_CUBIC_BINARY_SEARCH 0 69 #define DEBUG_CUBIC_BINARY_SEARCH 0
90 #define DEBUG_DUPLICATES 1
91 #define DEBUG_FLAT_QUADS 0
92 #define DEBUG_FLOW 1 70 #define DEBUG_FLOW 1
93 #define DEBUG_LIMIT_WIND_SUM 4 71 #define DEBUG_LIMIT_WIND_SUM 5
94 #define DEBUG_MARK_DONE 1 72 #define DEBUG_MARK_DONE 1
95 #define DEBUG_PATH_CONSTRUCTION 1 73 #define DEBUG_PATH_CONSTRUCTION 1
74 #define DEBUG_PERP 0
96 #define DEBUG_SHOW_TEST_NAME 1 75 #define DEBUG_SHOW_TEST_NAME 1
97 #define DEBUG_SHOW_TEST_PROGRESS 1
98 #define DEBUG_SHOW_WINDING 0
99 #define DEBUG_SORT 1 76 #define DEBUG_SORT 1
100 #define DEBUG_SORT_COMPACT 0
101 #define DEBUG_SORT_RAW 0
102 #define DEBUG_SORT_SINGLE 0
103 #define DEBUG_SWAP_TOP 1 77 #define DEBUG_SWAP_TOP 1
104 #define DEBUG_UNSORTABLE 1 78 #define DEBUG_T_SECT 1
105 #define DEBUG_VALIDATE 0 79 #define DEBUG_T_SECT_DUMP 02
106 #define DEBUG_WIND_BUMP 0 80 #define DEBUG_VALIDATE 1
107 #define DEBUG_WINDING 1 81 #define DEBUG_WINDING 1
108 #define DEBUG_WINDING_AT_T 1 82 #define DEBUG_WINDING_AT_T 1
109 83
110 #endif 84 #endif
111 85
112 #if DEBUG_AS_C_CODE 86 #ifdef SK_RELEASE
113 #define CUBIC_DEBUG_STR "{{%1.9g,%1.9g}, {%1.9g,%1.9g}, {%1.9g,%1.9g}, {%1.9g,%1 .9g}}" 87 #define PATH_OPS_DEBUG_RELEASE(a, b) b
114 #define QUAD_DEBUG_STR "{{%1.9g,%1.9g}, {%1.9g,%1.9g}, {%1.9g,%1.9g}}" 88 #define PATH_OPS_DEBUG_CODE(...)
115 #define LINE_DEBUG_STR "{{%1.9g,%1.9g}, {%1.9g,%1.9g}}" 89 #define PATH_OPS_DEBUG_PARAMS(...)
90 #else
91 #define PATH_OPS_DEBUG_RELEASE(a, b) a
92 #define PATH_OPS_DEBUG_CODE(...) __VA_ARGS__
93 #define PATH_OPS_DEBUG_PARAMS(...) , __VA_ARGS__
94 #endif
95
96 #if DEBUG_T_SECT == 0
97 #define PATH_OPS_DEBUG_T_SECT_RELEASE(a, b) b
98 #define PATH_OPS_DEBUG_T_SECT_PARAMS(...)
99 #define PATH_OPS_DEBUG_T_SECT_CODE(...)
100 #else
101 #define PATH_OPS_DEBUG_T_SECT_RELEASE(a, b) a
102 #define PATH_OPS_DEBUG_T_SECT_PARAMS(...) , __VA_ARGS__
103 #define PATH_OPS_DEBUG_T_SECT_CODE(...) __VA_ARGS__
104 #endif
105
106 #if DEBUG_T_SECT_DUMP > 1
107 extern int gDumpTSectNum;
108 #endif
109
110 #define CUBIC_DEBUG_STR "{{{%1.9g,%1.9g}, {%1.9g,%1.9g}, {%1.9g,%1.9g}, {%1.9g,% 1.9g}}}"
111 #define QUAD_DEBUG_STR "{{{%1.9g,%1.9g}, {%1.9g,%1.9g}, {%1.9g,%1.9g}}}"
112 #define LINE_DEBUG_STR "{{{%1.9g,%1.9g}, {%1.9g,%1.9g}}}"
116 #define PT_DEBUG_STR "{{%1.9g,%1.9g}}" 113 #define PT_DEBUG_STR "{{%1.9g,%1.9g}}"
117 #else 114
118 #define CUBIC_DEBUG_STR "(%1.9g,%1.9g %1.9g,%1.9g %1.9g,%1.9g %1.9g,%1.9g)"
119 #define QUAD_DEBUG_STR "(%1.9g,%1.9g %1.9g,%1.9g %1.9g,%1.9g)"
120 #define LINE_DEBUG_STR "(%1.9g,%1.9g %1.9g,%1.9g)"
121 #define PT_DEBUG_STR "(%1.9g,%1.9g)"
122 #endif
123 #define T_DEBUG_STR(t, n) #t "[" #n "]=%1.9g" 115 #define T_DEBUG_STR(t, n) #t "[" #n "]=%1.9g"
124 #define TX_DEBUG_STR(t) #t "[%d]=%1.9g" 116 #define TX_DEBUG_STR(t) #t "[%d]=%1.9g"
125 #define CUBIC_DEBUG_DATA(c) c[0].fX, c[0].fY, c[1].fX, c[1].fY, c[2].fX, c[2].fY , c[3].fX, c[3].fY 117 #define CUBIC_DEBUG_DATA(c) c[0].fX, c[0].fY, c[1].fX, c[1].fY, c[2].fX, c[2].fY , c[3].fX, c[3].fY
126 #define QUAD_DEBUG_DATA(q) q[0].fX, q[0].fY, q[1].fX, q[1].fY, q[2].fX, q[2].fY 118 #define QUAD_DEBUG_DATA(q) q[0].fX, q[0].fY, q[1].fX, q[1].fY, q[2].fX, q[2].fY
127 #define LINE_DEBUG_DATA(l) l[0].fX, l[0].fY, l[1].fX, l[1].fY 119 #define LINE_DEBUG_DATA(l) l[0].fX, l[0].fY, l[1].fX, l[1].fY
128 #define PT_DEBUG_DATA(i, n) i.pt(n).asSkPoint().fX, i.pt(n).asSkPoint().fY 120 #define PT_DEBUG_DATA(i, n) i.pt(n).asSkPoint().fX, i.pt(n).asSkPoint().fY
129 121
130 #ifndef DEBUG_TEST 122 #ifndef DEBUG_TEST
131 #define DEBUG_TEST 0 123 #define DEBUG_TEST 0
132 #endif 124 #endif
133 125
134 #if DEBUG_SHOW_TEST_NAME 126 #if DEBUG_SHOW_TEST_NAME
135 #include "SkTLS.h" 127 #include "SkTLS.h"
136 #endif 128 #endif
137 129
138 #include "SkTArray.h"
139 #include "SkTDArray.h" 130 #include "SkTDArray.h"
140 131
141 class SkPathOpsDebug { 132 class SkPathOpsDebug {
142 public: 133 public:
143 static const char* kLVerbStr[]; 134 static const char* kLVerbStr[];
144 135
145 #if defined(SK_DEBUG) || !FORCE_RELEASE 136 #if defined(SK_DEBUG) || !FORCE_RELEASE
146 static int gContourID; 137 static int gContourID;
147 static int gSegmentID; 138 static int gSegmentID;
148 #endif 139 #endif
149 140
150 #if DEBUG_SORT || DEBUG_SWAP_TOP 141 #if DEBUG_SORT || DEBUG_SWAP_TOP
151 static int gSortCountDefault; 142 static int gSortCountDefault;
152 static int gSortCount; 143 static int gSortCount;
153 #endif 144 #endif
154 145
155 #if DEBUG_ACTIVE_OP 146 #if DEBUG_ACTIVE_OP
156 static const char* kPathOpStr[]; 147 static const char* kPathOpStr[];
157 #endif 148 #endif
158 149
159 static bool ChaseContains(const SkTDArray<struct SkOpSpan *>& , const struct SkOpSpan * );
160 static void MathematicaIze(char* str, size_t bufferSize); 150 static void MathematicaIze(char* str, size_t bufferSize);
161 static bool ValidWind(int winding); 151 static bool ValidWind(int winding);
162 static void WindingPrintf(int winding); 152 static void WindingPrintf(int winding);
163 153
164 #if DEBUG_SHOW_TEST_NAME 154 #if DEBUG_SHOW_TEST_NAME
165 static void* CreateNameStr(); 155 static void* CreateNameStr();
166 static void DeleteNameStr(void* v); 156 static void DeleteNameStr(void* v);
167 #define DEBUG_FILENAME_STRING_LENGTH 64 157 #define DEBUG_FILENAME_STRING_LENGTH 64
168 #define DEBUG_FILENAME_STRING (reinterpret_cast<char* >(SkTLS::Get(SkPathOpsDebu g::CreateNameStr, \ 158 #define DEBUG_FILENAME_STRING (reinterpret_cast<char* >(SkTLS::Get(SkPathOpsDebu g::CreateNameStr, \
169 SkPathOpsDebug::DeleteNameStr))) 159 SkPathOpsDebug::DeleteNameStr)))
170 static void BumpTestName(char* ); 160 static void BumpTestName(char* );
171 #endif 161 #endif
172 static void ShowOnePath(const SkPath& path, const char* name, bool includeDe claration); 162 static void ShowOnePath(const SkPath& path, const char* name, bool includeDe claration);
173 static void ShowPath(const SkPath& one, const SkPath& two, SkPathOp op, cons t char* name); 163 static void ShowPath(const SkPath& one, const SkPath& two, SkPathOp op, cons t char* name);
174 static void DumpCoincidence(const SkTArray<class SkOpContour, true>& contour s); 164
175 static void DumpCoincidence(const SkTArray<class SkOpContour* , true>& conto urs); 165 static bool ChaseContains(const SkTDArray<class SkOpSpanBase*>& , const clas s SkOpSpanBase* );
176 static void DumpContours(const SkTArray<class SkOpContour, true>& contours); 166
177 static void DumpContours(const SkTArray<class SkOpContour* , true>& contours ); 167 static const struct SkOpAngle* DebugAngleAngle(const struct SkOpAngle*, int id);
178 static void DumpContourAngles(const SkTArray<class SkOpContour, true>& conto urs); 168 static class SkOpContour* DebugAngleContour(struct SkOpAngle*, int id);
179 static void DumpContourAngles(const SkTArray<class SkOpContour* , true>& con tours); 169 static const class SkOpPtT* DebugAnglePtT(const struct SkOpAngle*, int id);
180 static void DumpContourPt(const SkTArray<class SkOpContour, true>& contours, int id); 170 static const class SkOpSegment* DebugAngleSegment(const struct SkOpAngle*, i nt id);
181 static void DumpContourPt(const SkTArray<class SkOpContour* , true>& contour s, int id); 171 static const class SkOpSpanBase* DebugAngleSpan(const struct SkOpAngle*, int id);
182 static void DumpContourPts(const SkTArray<class SkOpContour, true>& contours ); 172
183 static void DumpContourPts(const SkTArray<class SkOpContour* , true>& contou rs); 173 static const struct SkOpAngle* DebugContourAngle(class SkOpContour*, int id) ;
184 static void DumpContourSpan(const SkTArray<class SkOpContour, true>& contour s, int id); 174 static class SkOpContour* DebugContourContour(class SkOpContour*, int id);
185 static void DumpContourSpan(const SkTArray<class SkOpContour* , true>& conto urs, int id); 175 static const class SkOpPtT* DebugContourPtT(class SkOpContour*, int id);
186 static void DumpContourSpans(const SkTArray<class SkOpContour, true>& contou rs); 176 static const class SkOpSegment* DebugContourSegment(class SkOpContour*, int id);
187 static void DumpContourSpans(const SkTArray<class SkOpContour* , true>& cont ours); 177 static const class SkOpSpanBase* DebugContourSpan(class SkOpContour*, int id );
188 static void DumpSpans(const SkTDArray<struct SkOpSpan *>& ); 178
189 static void DumpSpans(const SkTDArray<struct SkOpSpan *>* ); 179 static const struct SkOpAngle* DebugPtTAngle(const class SkOpPtT*, int id);
180 static class SkOpContour* DebugPtTContour(class SkOpPtT*, int id);
181 static const class SkOpPtT* DebugPtTPtT(const class SkOpPtT*, int id);
182 static const class SkOpSegment* DebugPtTSegment(const class SkOpPtT*, int id );
183 static const class SkOpSpanBase* DebugPtTSpan(const class SkOpPtT*, int id);
184
185 static const struct SkOpAngle* DebugSegmentAngle(const class SkOpSegment*, i nt id);
186 static class SkOpContour* DebugSegmentContour(class SkOpSegment*, int id);
187 static const class SkOpPtT* DebugSegmentPtT(const class SkOpSegment*, int id );
188 static const class SkOpSegment* DebugSegmentSegment(const class SkOpSegment* , int id);
189 static const class SkOpSpanBase* DebugSegmentSpan(const class SkOpSegment*, int id);
190
191 static const struct SkOpAngle* DebugSpanAngle(const class SkOpSpanBase*, int id);
192 static class SkOpContour* DebugSpanContour(class SkOpSpanBase*, int id);
193 static const class SkOpPtT* DebugSpanPtT(const class SkOpSpanBase*, int id);
194 static const class SkOpSegment* DebugSpanSegment(const class SkOpSpanBase*, int id);
195 static const class SkOpSpanBase* DebugSpanSpan(const class SkOpSpanBase*, in t id);
196
197 static void DumpContours(SkTDArray<class SkOpContour* >* contours);
198 static void DumpContoursAll(SkTDArray<class SkOpContour* >* contours);
199 static void DumpContoursAngles(const SkTDArray<class SkOpContour* >* contour s);
200 static void DumpContoursPt(const SkTDArray<class SkOpContour* >* contours, i nt id);
201 static void DumpContoursPts(const SkTDArray<class SkOpContour* >* contours);
202 static void DumpContoursSegment(const SkTDArray<class SkOpContour* >* contou rs, int id);
203 static void DumpContoursSpan(const SkTDArray<class SkOpContour* >* contours, int id);
204 static void DumpContoursSpans(const SkTDArray<class SkOpContour* >* contours );
190 }; 205 };
191 206
192 // shorthand for calling from debugger 207 // shorthand for calling from debugger
193 void Dump(const SkTArray<class SkOpContour, true>& contours); 208 template<typename TCurve> class SkTSect;
194 void Dump(const SkTArray<class SkOpContour* , true>& contours); 209 template<typename TCurve> class SkTSpan;
195 void Dump(const SkTArray<class SkOpContour, true>* contours);
196 void Dump(const SkTArray<class SkOpContour* , true>* contours);
197 210
198 void Dump(const SkTDArray<SkOpSpan* >& chase); 211 struct SkDQuad;
199 void Dump(const SkTDArray<SkOpSpan* >* chase); 212 struct SkDCubic;
200 213
201 void DumpAngles(const SkTArray<class SkOpContour, true>& contours); 214 const SkTSpan<SkDCubic>* DebugSpan(const SkTSect<SkDCubic>* , int id);
202 void DumpAngles(const SkTArray<class SkOpContour* , true>& contours); 215 const SkTSpan<SkDQuad>* DebugSpan(const SkTSect<SkDQuad>* , int id);
203 void DumpAngles(const SkTArray<class SkOpContour, true>* contours); 216 const SkTSpan<SkDCubic>* DebugT(const SkTSect<SkDCubic>* , double t);
204 void DumpAngles(const SkTArray<class SkOpContour* , true>* contours); 217 const SkTSpan<SkDQuad>* DebugT(const SkTSect<SkDQuad>* , double t);
205 218
206 void DumpCoin(const SkTArray<class SkOpContour, true>& contours); 219 const SkTSpan<SkDCubic>* DebugSpan(const SkTSpan<SkDCubic>* , int id);
207 void DumpCoin(const SkTArray<class SkOpContour* , true>& contours); 220 const SkTSpan<SkDQuad>* DebugSpan(const SkTSpan<SkDQuad>* , int id);
208 void DumpCoin(const SkTArray<class SkOpContour, true>* contours); 221 const SkTSpan<SkDCubic>* DebugT(const SkTSpan<SkDCubic>* , double t);
209 void DumpCoin(const SkTArray<class SkOpContour* , true>* contours); 222 const SkTSpan<SkDQuad>* DebugT(const SkTSpan<SkDQuad>* , double t);
210 223
211 void DumpPts(const SkTArray<class SkOpContour, true>& contours); 224 void Dump(const SkTSect<SkDCubic>* );
212 void DumpPts(const SkTArray<class SkOpContour* , true>& contours); 225 void Dump(const SkTSect<SkDQuad>* );
213 void DumpPts(const SkTArray<class SkOpContour, true>* contours); 226 void Dump(const SkTSpan<SkDCubic>* , const SkTSect<SkDCubic>* = NULL);
214 void DumpPts(const SkTArray<class SkOpContour* , true>* contours); 227 void Dump(const SkTSpan<SkDQuad>* , const SkTSect<SkDQuad>* = NULL);
215 228 void DumpBoth(SkTSect<SkDCubic>* sect1, SkTSect<SkDCubic>* sect2);
216 void DumpPt(const SkTArray<class SkOpContour, true>& contours, int segmentID); 229 void DumpBoth(SkTSect<SkDQuad>* sect1, SkTSect<SkDQuad>* sect2);
217 void DumpPt(const SkTArray<class SkOpContour* , true>& contours, int segmentID); 230 void DumpCoin(SkTSect<SkDCubic>* sect1);
218 void DumpPt(const SkTArray<class SkOpContour, true>* contours, int segmentID); 231 void DumpCoin(SkTSect<SkDQuad>* sect1);
219 void DumpPt(const SkTArray<class SkOpContour* , true>* contours, int segmentID); 232 void DumpCoinCurves(SkTSect<SkDCubic>* sect1);
220 233 void DumpCoinCurves(SkTSect<SkDQuad>* sect1);
221 void DumpSpans(const SkTArray<class SkOpContour, true>& contours); 234 void DumpCurves(const SkTSpan<SkDCubic>* );
222 void DumpSpans(const SkTArray<class SkOpContour* , true>& contours); 235 void DumpCurves(const SkTSpan<SkDQuad>* );
223 void DumpSpans(const SkTArray<class SkOpContour, true>* contours);
224 void DumpSpans(const SkTArray<class SkOpContour* , true>* contours);
225
226 void DumpSpan(const SkTArray<class SkOpContour, true>& contours, int segmentID);
227 void DumpSpan(const SkTArray<class SkOpContour* , true>& contours, int segmentID );
228 void DumpSpan(const SkTArray<class SkOpContour, true>* contours, int segmentID);
229 void DumpSpan(const SkTArray<class SkOpContour* , true>* contours, int segmentID );
230 236
231 // generates tools/path_sorter.htm and path_visualizer.htm compatible data 237 // generates tools/path_sorter.htm and path_visualizer.htm compatible data
232 void DumpQ(const struct SkDQuad& quad1, const struct SkDQuad& quad2, int testNo) ; 238 void DumpQ(const SkDQuad& quad1, const SkDQuad& quad2, int testNo);
239 void DumpT(const SkDQuad& quad, double t);
233 240
234 void DumpT(const struct SkDQuad& quad, double t); 241 const struct SkOpAngle* DebugAngle(const SkTDArray<class SkOpContour* >* contour s, int id);
242 class SkOpContour* DebugContour(const SkTDArray<class SkOpContour* >* contours, int id);
243 const class SkOpPtT* DebugPtT(const SkTDArray<class SkOpContour* >* contours, in t id);
244 const class SkOpSegment* DebugSegment(const SkTDArray<class SkOpContour* >* cont ours, int id);
245 const class SkOpSpanBase* DebugSpan(const SkTDArray<class SkOpContour* >* contou rs, int id);
235 246
247 void Dump(const SkTDArray<class SkOpContour* >* contours);
248 void DumpAll(SkTDArray<class SkOpContour* >* contours);
249 void DumpAngles(const SkTDArray<class SkOpContour* >* contours);
250 void DumpCoin(const SkTDArray<class SkOpContour* >* contours);
251 void DumpPt(const SkTDArray<class SkOpContour* >* contours, int segmentID);
252 void DumpPts(const SkTDArray<class SkOpContour* >* contours);
253 void DumpSegment(const SkTDArray<class SkOpContour* >* contours, int segmentID);
254 void DumpSpan(const SkTDArray<class SkOpContour* >* contours, int spanID);
255 void DumpSpans(const SkTDArray<class SkOpContour* >* contours);
236 #endif 256 #endif
OLDNEW
« no previous file with comments | « src/pathops/SkPathOpsCubicSect.h ('k') | src/pathops/SkPathOpsDebug.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698