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

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

Issue 272153002: fix bugs found by computing flat clips in 800K skps (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix maybe-uninitialized error in unbuntu Created 6 years, 6 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/SkPathOpsCommon.cpp ('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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 #define DEBUG_ADD_INTERSECTING_TS 0 44 #define DEBUG_ADD_INTERSECTING_TS 0
45 #define DEBUG_ADD_T_PAIR 0 45 #define DEBUG_ADD_T_PAIR 0
46 #define DEBUG_ANGLE 0 46 #define DEBUG_ANGLE 0
47 #define DEBUG_AS_C_CODE 1 47 #define DEBUG_AS_C_CODE 1
48 #define DEBUG_ASSEMBLE 0 48 #define DEBUG_ASSEMBLE 0
49 #define DEBUG_CHECK_ENDS 0 49 #define DEBUG_CHECK_ENDS 0
50 #define DEBUG_CHECK_TINY 0 50 #define DEBUG_CHECK_TINY 0
51 #define DEBUG_CONCIDENT 0 51 #define DEBUG_CONCIDENT 0
52 #define DEBUG_CROSS 0 52 #define DEBUG_CROSS 0
53 #define DEBUG_CUBIC_BINARY_SEARCH 0 53 #define DEBUG_CUBIC_BINARY_SEARCH 0
54 #define DEBUG_DUPLICATES 0
54 #define DEBUG_FLAT_QUADS 0 55 #define DEBUG_FLAT_QUADS 0
55 #define DEBUG_FLOW 0 56 #define DEBUG_FLOW 0
56 #define DEBUG_LIMIT_WIND_SUM 0 57 #define DEBUG_LIMIT_WIND_SUM 0
57 #define DEBUG_MARK_DONE 0 58 #define DEBUG_MARK_DONE 0
58 #define DEBUG_PATH_CONSTRUCTION 0 59 #define DEBUG_PATH_CONSTRUCTION 0
59 #define DEBUG_SHOW_TEST_NAME 0 60 #define DEBUG_SHOW_TEST_NAME 0
60 #define DEBUG_SHOW_TEST_PROGRESS 0 61 #define DEBUG_SHOW_TEST_PROGRESS 0
61 #define DEBUG_SHOW_WINDING 0 62 #define DEBUG_SHOW_WINDING 0
62 #define DEBUG_SORT 0 63 #define DEBUG_SORT 0
63 #define DEBUG_SORT_COMPACT 0 64 #define DEBUG_SORT_COMPACT 0
(...skipping 15 matching lines...) Expand all
79 #define DEBUG_ADD_INTERSECTING_TS 1 80 #define DEBUG_ADD_INTERSECTING_TS 1
80 #define DEBUG_ADD_T_PAIR 1 81 #define DEBUG_ADD_T_PAIR 1
81 #define DEBUG_ANGLE 1 82 #define DEBUG_ANGLE 1
82 #define DEBUG_AS_C_CODE 1 83 #define DEBUG_AS_C_CODE 1
83 #define DEBUG_ASSEMBLE 1 84 #define DEBUG_ASSEMBLE 1
84 #define DEBUG_CHECK_ENDS 1 85 #define DEBUG_CHECK_ENDS 1
85 #define DEBUG_CHECK_TINY 1 86 #define DEBUG_CHECK_TINY 1
86 #define DEBUG_CONCIDENT 1 87 #define DEBUG_CONCIDENT 1
87 #define DEBUG_CROSS 01 88 #define DEBUG_CROSS 01
88 #define DEBUG_CUBIC_BINARY_SEARCH 1 89 #define DEBUG_CUBIC_BINARY_SEARCH 1
90 #define DEBUG_DUPLICATES 1
89 #define DEBUG_FLAT_QUADS 0 91 #define DEBUG_FLAT_QUADS 0
90 #define DEBUG_FLOW 1 92 #define DEBUG_FLOW 1
91 #define DEBUG_LIMIT_WIND_SUM 4 93 #define DEBUG_LIMIT_WIND_SUM 4
92 #define DEBUG_MARK_DONE 1 94 #define DEBUG_MARK_DONE 1
93 #define DEBUG_PATH_CONSTRUCTION 1 95 #define DEBUG_PATH_CONSTRUCTION 1
94 #define DEBUG_SHOW_TEST_NAME 1 96 #define DEBUG_SHOW_TEST_NAME 1
95 #define DEBUG_SHOW_TEST_PROGRESS 1 97 #define DEBUG_SHOW_TEST_PROGRESS 1
96 #define DEBUG_SHOW_WINDING 0 98 #define DEBUG_SHOW_WINDING 0
97 #define DEBUG_SORT 1 99 #define DEBUG_SORT 1
98 #define DEBUG_SORT_COMPACT 0 100 #define DEBUG_SORT_COMPACT 0
(...skipping 17 matching lines...) Expand all
116 #define CUBIC_DEBUG_STR "(%1.9g,%1.9g %1.9g,%1.9g %1.9g,%1.9g %1.9g,%1.9g)" 118 #define CUBIC_DEBUG_STR "(%1.9g,%1.9g %1.9g,%1.9g %1.9g,%1.9g %1.9g,%1.9g)"
117 #define QUAD_DEBUG_STR "(%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)"
118 #define LINE_DEBUG_STR "(%1.9g,%1.9g %1.9g,%1.9g)" 120 #define LINE_DEBUG_STR "(%1.9g,%1.9g %1.9g,%1.9g)"
119 #define PT_DEBUG_STR "(%1.9g,%1.9g)" 121 #define PT_DEBUG_STR "(%1.9g,%1.9g)"
120 #endif 122 #endif
121 #define T_DEBUG_STR(t, n) #t "[" #n "]=%1.9g" 123 #define T_DEBUG_STR(t, n) #t "[" #n "]=%1.9g"
122 #define TX_DEBUG_STR(t) #t "[%d]=%1.9g" 124 #define TX_DEBUG_STR(t) #t "[%d]=%1.9g"
123 #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 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
124 #define QUAD_DEBUG_DATA(q) q[0].fX, q[0].fY, q[1].fX, q[1].fY, q[2].fX, q[2].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
125 #define LINE_DEBUG_DATA(l) l[0].fX, l[0].fY, l[1].fX, l[1].fY 127 #define LINE_DEBUG_DATA(l) l[0].fX, l[0].fY, l[1].fX, l[1].fY
126 #define PT_DEBUG_DATA(i, n) i.pt(n).fX, i.pt(n).fY 128 #define PT_DEBUG_DATA(i, n) i.pt(n).asSkPoint().fX, i.pt(n).asSkPoint().fY
127 129
128 #ifndef DEBUG_TEST 130 #ifndef DEBUG_TEST
129 #define DEBUG_TEST 0 131 #define DEBUG_TEST 0
130 #endif 132 #endif
131 133
132 #if DEBUG_SHOW_TEST_NAME 134 #if DEBUG_SHOW_TEST_NAME
133 #include "SkTLS.h" 135 #include "SkTLS.h"
134 #endif 136 #endif
135 137
136 #include "SkTArray.h" 138 #include "SkTArray.h"
(...skipping 24 matching lines...) Expand all
161 163
162 #if DEBUG_SHOW_TEST_NAME 164 #if DEBUG_SHOW_TEST_NAME
163 static void* CreateNameStr(); 165 static void* CreateNameStr();
164 static void DeleteNameStr(void* v); 166 static void DeleteNameStr(void* v);
165 #define DEBUG_FILENAME_STRING_LENGTH 64 167 #define DEBUG_FILENAME_STRING_LENGTH 64
166 #define DEBUG_FILENAME_STRING (reinterpret_cast<char* >(SkTLS::Get(SkPathOpsDebu g::CreateNameStr, \ 168 #define DEBUG_FILENAME_STRING (reinterpret_cast<char* >(SkTLS::Get(SkPathOpsDebu g::CreateNameStr, \
167 SkPathOpsDebug::DeleteNameStr))) 169 SkPathOpsDebug::DeleteNameStr)))
168 static void BumpTestName(char* ); 170 static void BumpTestName(char* );
169 #endif 171 #endif
170 static void ShowPath(const SkPath& one, const SkPath& two, SkPathOp op, cons t char* name); 172 static void ShowPath(const SkPath& one, const SkPath& two, SkPathOp op, cons t char* name);
171 static void DumpAngles(const SkTArray<class SkOpAngle, true>& angles); 173 static void DumpCoincidence(const SkTArray<class SkOpContour, true>& contour s);
172 static void DumpAngles(const SkTArray<class SkOpAngle* , true>& angles); 174 static void DumpCoincidence(const SkTArray<class SkOpContour* , true>& conto urs);
173 static void DumpContours(const SkTArray<class SkOpContour, true>& contours); 175 static void DumpContours(const SkTArray<class SkOpContour, true>& contours);
174 static void DumpContours(const SkTArray<class SkOpContour* , true>& contours ); 176 static void DumpContours(const SkTArray<class SkOpContour* , true>& contours );
175 static void DumpContourAngles(const SkTArray<class SkOpContour, true>& conto urs); 177 static void DumpContourAngles(const SkTArray<class SkOpContour, true>& conto urs);
176 static void DumpContourAngles(const SkTArray<class SkOpContour* , true>& con tours); 178 static void DumpContourAngles(const SkTArray<class SkOpContour* , true>& con tours);
179 static void DumpContourPt(const SkTArray<class SkOpContour, true>& contours, int id);
180 static void DumpContourPt(const SkTArray<class SkOpContour* , true>& contour s, int id);
177 static void DumpContourPts(const SkTArray<class SkOpContour, true>& contours ); 181 static void DumpContourPts(const SkTArray<class SkOpContour, true>& contours );
178 static void DumpContourPts(const SkTArray<class SkOpContour* , true>& contou rs); 182 static void DumpContourPts(const SkTArray<class SkOpContour* , true>& contou rs);
183 static void DumpContourSpan(const SkTArray<class SkOpContour, true>& contour s, int id);
184 static void DumpContourSpan(const SkTArray<class SkOpContour* , true>& conto urs, int id);
179 static void DumpContourSpans(const SkTArray<class SkOpContour, true>& contou rs); 185 static void DumpContourSpans(const SkTArray<class SkOpContour, true>& contou rs);
180 static void DumpContourSpans(const SkTArray<class SkOpContour* , true>& cont ours); 186 static void DumpContourSpans(const SkTArray<class SkOpContour* , true>& cont ours);
181 static void DumpSpans(const SkTDArray<struct SkOpSpan *>& ); 187 static void DumpSpans(const SkTDArray<struct SkOpSpan *>& );
182 static void DumpSpans(const SkTDArray<struct SkOpSpan *>* ); 188 static void DumpSpans(const SkTDArray<struct SkOpSpan *>* );
183 }; 189 };
184 190
185 // shorthand for calling from debugger 191 // shorthand for calling from debugger
186 void Dump(const SkTArray<class SkOpAngle, true>& angles);
187 void Dump(const SkTArray<class SkOpAngle* , true>& angles);
188 void Dump(const SkTArray<class SkOpAngle, true>* angles);
189 void Dump(const SkTArray<class SkOpAngle* , true>* angles);
190
191 void Dump(const SkTArray<class SkOpContour, true>& contours); 192 void Dump(const SkTArray<class SkOpContour, true>& contours);
192 void Dump(const SkTArray<class SkOpContour* , true>& contours); 193 void Dump(const SkTArray<class SkOpContour* , true>& contours);
193 void Dump(const SkTArray<class SkOpContour, true>* contours); 194 void Dump(const SkTArray<class SkOpContour, true>* contours);
194 void Dump(const SkTArray<class SkOpContour* , true>* contours); 195 void Dump(const SkTArray<class SkOpContour* , true>* contours);
195 196
196 void Dump(const SkTDArray<SkOpSpan *>& chaseArray); 197 void Dump(const SkTDArray<SkOpSpan* >& chase);
197 void Dump(const SkTDArray<SkOpSpan *>* chaseArray); 198 void Dump(const SkTDArray<SkOpSpan* >* chase);
198 199
199 void DumpAngles(const SkTArray<class SkOpContour, true>& contours); 200 void DumpAngles(const SkTArray<class SkOpContour, true>& contours);
200 void DumpAngles(const SkTArray<class SkOpContour* , true>& contours); 201 void DumpAngles(const SkTArray<class SkOpContour* , true>& contours);
201 void DumpAngles(const SkTArray<class SkOpContour, true>* contours); 202 void DumpAngles(const SkTArray<class SkOpContour, true>* contours);
202 void DumpAngles(const SkTArray<class SkOpContour* , true>* contours); 203 void DumpAngles(const SkTArray<class SkOpContour* , true>* contours);
203 204
205 void DumpCoin(const SkTArray<class SkOpContour, true>& contours);
206 void DumpCoin(const SkTArray<class SkOpContour* , true>& contours);
207 void DumpCoin(const SkTArray<class SkOpContour, true>* contours);
208 void DumpCoin(const SkTArray<class SkOpContour* , true>* contours);
209
204 void DumpPts(const SkTArray<class SkOpContour, true>& contours); 210 void DumpPts(const SkTArray<class SkOpContour, true>& contours);
205 void DumpPts(const SkTArray<class SkOpContour* , true>& contours); 211 void DumpPts(const SkTArray<class SkOpContour* , true>& contours);
206 void DumpPts(const SkTArray<class SkOpContour, true>* contours); 212 void DumpPts(const SkTArray<class SkOpContour, true>* contours);
207 void DumpPts(const SkTArray<class SkOpContour* , true>* contours); 213 void DumpPts(const SkTArray<class SkOpContour* , true>* contours);
208 214
215 void DumpPt(const SkTArray<class SkOpContour, true>& contours, int segmentID);
216 void DumpPt(const SkTArray<class SkOpContour* , true>& contours, int segmentID);
217 void DumpPt(const SkTArray<class SkOpContour, true>* contours, int segmentID);
218 void DumpPt(const SkTArray<class SkOpContour* , true>* contours, int segmentID);
219
209 void DumpSpans(const SkTArray<class SkOpContour, true>& contours); 220 void DumpSpans(const SkTArray<class SkOpContour, true>& contours);
210 void DumpSpans(const SkTArray<class SkOpContour* , true>& contours); 221 void DumpSpans(const SkTArray<class SkOpContour* , true>& contours);
211 void DumpSpans(const SkTArray<class SkOpContour, true>* contours); 222 void DumpSpans(const SkTArray<class SkOpContour, true>* contours);
212 void DumpSpans(const SkTArray<class SkOpContour* , true>* contours); 223 void DumpSpans(const SkTArray<class SkOpContour* , true>* contours);
213 224
225 void DumpSpan(const SkTArray<class SkOpContour, true>& contours, int segmentID);
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
214 // generates tools/path_sorter.htm and path_visualizer.htm compatible data 230 // generates tools/path_sorter.htm and path_visualizer.htm compatible data
215 void DumpQ(const struct SkDQuad& quad1, const struct SkDQuad& quad2, int testNo) ; 231 void DumpQ(const struct SkDQuad& quad1, const struct SkDQuad& quad2, int testNo) ;
216 232
217 void DumpT(const struct SkDQuad& quad, double t); 233 void DumpT(const struct SkDQuad& quad, double t);
218 234
219 #endif 235 #endif
OLDNEW
« no previous file with comments | « src/pathops/SkPathOpsCommon.cpp ('k') | src/pathops/SkPathOpsDebug.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698