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

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

Issue 1394503003: fix some pathops bugs found in 1M skps (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: init to avoid warning Created 5 years, 2 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/SkOpSegment.cpp ('k') | src/pathops/SkPathOpsCommon.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 2012 Google Inc. 2 * Copyright 2012 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 SkOpSpan_DEFINED 7 #ifndef SkOpSpan_DEFINED
8 #define SkOpSpan_DEFINED 8 #define SkOpSpan_DEFINED
9 9
10 #include "SkPathOpsDebug.h" 10 #include "SkPathOpsDebug.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 bool collapsed(const SkOpPtT* ) const; 51 bool collapsed(const SkOpPtT* ) const;
52 bool contains(const SkOpPtT* ) const; 52 bool contains(const SkOpPtT* ) const;
53 SkOpPtT* contains(const SkOpSegment* ); 53 SkOpPtT* contains(const SkOpSegment* );
54 SkOpContour* contour() const; 54 SkOpContour* contour() const;
55 55
56 int debugID() const { 56 int debugID() const {
57 return SkDEBUGRELEASE(fID, -1); 57 return SkDEBUGRELEASE(fID, -1);
58 } 58 }
59 59
60 const SkOpAngle* debugAngle(int id) const; 60 const SkOpAngle* debugAngle(int id) const;
61 bool debugContains(const SkOpPtT* ) const;
62 const SkOpPtT* debugContains(const SkOpSegment* check) const;
61 SkOpContour* debugContour(int id); 63 SkOpContour* debugContour(int id);
62 int debugLoopLimit(bool report) const; 64 int debugLoopLimit(bool report) const;
63 bool debugMatchID(int id) const; 65 bool debugMatchID(int id) const;
64 const SkOpPtT* debugPtT(int id) const; 66 const SkOpPtT* debugPtT(int id) const;
65 const SkOpSegment* debugSegment(int id) const; 67 const SkOpSegment* debugSegment(int id) const;
66 const SkOpSpanBase* debugSpan(int id) const; 68 const SkOpSpanBase* debugSpan(int id) const;
67 SkOpGlobalState* globalState() const;
68 void debugValidate() const; 69 void debugValidate() const;
69 70
70 bool deleted() const { 71 bool deleted() const {
71 return fDeleted; 72 return fDeleted;
72 } 73 }
73 74
74 SkOpPtT* doppelganger(); 75 SkOpPtT* doppelganger();
75 76
76 bool duplicate() const { 77 bool duplicate() const {
77 return fDuplicatePt; 78 return fDuplicatePt;
78 } 79 }
79 80
80 void dump() const; // available to testing only 81 void dump() const; // available to testing only
81 void dumpAll() const; 82 void dumpAll() const;
82 void dumpBase() const; 83 void dumpBase() const;
83 84
84 SkOpPtT* find(SkOpSegment* ); 85 SkOpPtT* find(SkOpSegment* );
86 SkOpGlobalState* globalState() const;
85 void init(SkOpSpanBase* , double t, const SkPoint& , bool dup); 87 void init(SkOpSpanBase* , double t, const SkPoint& , bool dup);
86 88
87 void insert(SkOpPtT* span) { 89 void insert(SkOpPtT* span) {
88 SkASSERT(span != this); 90 SkASSERT(span != this);
89 span->fNext = fNext; 91 span->fNext = fNext;
90 fNext = span; 92 fNext = span;
91 } 93 }
92 94
93 const SkOpPtT* next() const { 95 const SkOpPtT* next() const {
94 return fNext; 96 return fNext;
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 SkOpContour* contour() const; 199 SkOpContour* contour() const;
198 200
199 int debugBumpCount() { 201 int debugBumpCount() {
200 return SkDEBUGRELEASE(++fCount, -1); 202 return SkDEBUGRELEASE(++fCount, -1);
201 } 203 }
202 204
203 int debugID() const { 205 int debugID() const {
204 return SkDEBUGRELEASE(fID, -1); 206 return SkDEBUGRELEASE(fID, -1);
205 } 207 }
206 208
209 bool debugAlignedEnd(double t, const SkPoint& pt) const;
210 bool debugAlignedInner() const;
207 const SkOpAngle* debugAngle(int id) const; 211 const SkOpAngle* debugAngle(int id) const;
208 bool debugCoinEndLoopCheck() const; 212 bool debugCoinEndLoopCheck() const;
213 bool debugContains(const SkOpSegment* ) const;
209 SkOpContour* debugContour(int id); 214 SkOpContour* debugContour(int id);
210 const SkOpPtT* debugPtT(int id) const; 215 const SkOpPtT* debugPtT(int id) const;
211 const SkOpSegment* debugSegment(int id) const; 216 const SkOpSegment* debugSegment(int id) const;
212 const SkOpSpanBase* debugSpan(int id) const; 217 const SkOpSpanBase* debugSpan(int id) const;
218 const SkOpSpan* debugStarter(SkOpSpanBase const** endPtr) const;
213 SkOpGlobalState* globalState() const; 219 SkOpGlobalState* globalState() const;
214 void debugValidate() const; 220 void debugValidate() const;
215 221
216 bool deleted() const { 222 bool deleted() const {
217 return fPtT.deleted(); 223 return fPtT.deleted();
218 } 224 }
219 225
220 void dump() const; // available to testing only 226 void dump() const; // available to testing only
221 void dumpCoin() const; 227 void dumpCoin() const;
222 void dumpAll() const; 228 void dumpAll() const;
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 SkOpSpanBase* fNext; // next intersection point 502 SkOpSpanBase* fNext; // next intersection point
497 int fWindSum; // accumulated from contours surrounding this one. 503 int fWindSum; // accumulated from contours surrounding this one.
498 int fOppSum; // for binary operators: the opposite winding sum 504 int fOppSum; // for binary operators: the opposite winding sum
499 int fWindValue; // 0 == canceled; 1 == normal; >1 == coincident 505 int fWindValue; // 0 == canceled; 1 == normal; >1 == coincident
500 int fOppValue; // normally 0 -- when binary coincident edges combine, opp v alue goes here 506 int fOppValue; // normally 0 -- when binary coincident edges combine, opp v alue goes here
501 int fTopTTry; // specifies direction and t value to try next 507 int fTopTTry; // specifies direction and t value to try next
502 bool fDone; // if set, this span to next higher T has been processed 508 bool fDone; // if set, this span to next higher T has been processed
503 }; 509 };
504 510
505 #endif 511 #endif
OLDNEW
« no previous file with comments | « src/pathops/SkOpSegment.cpp ('k') | src/pathops/SkPathOpsCommon.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698