| Index: src/pathops/SkOpCoincidence.h
|
| diff --git a/src/pathops/SkOpCoincidence.h b/src/pathops/SkOpCoincidence.h
|
| index 86c6577739bd4979049386f920fc93d3601ae2c8..91da2e16bf559321f0500b9fb203329c23da351e 100644
|
| --- a/src/pathops/SkOpCoincidence.h
|
| +++ b/src/pathops/SkOpCoincidence.h
|
| @@ -20,6 +20,11 @@ struct SkCoincidentSpans {
|
| SkOpPtT* fOppPtTStart;
|
| SkOpPtT* fOppPtTEnd;
|
| bool fFlipped;
|
| + SkDEBUGCODE(int fID);
|
| +
|
| + int debugID() const {
|
| + return SkDEBUGRELEASE(fID, -1);
|
| + }
|
|
|
| void dump() const;
|
| };
|
| @@ -35,12 +40,14 @@ public:
|
|
|
| void add(SkOpPtT* coinPtTStart, SkOpPtT* coinPtTEnd, SkOpPtT* oppPtTStart,
|
| SkOpPtT* oppPtTEnd, SkChunkAlloc* allocator);
|
| - void addExpanded(SkChunkAlloc* allocator PATH_OPS_DEBUG_VALIDATE_PARAMS(SkOpGlobalState* ));
|
| + bool addExpanded(SkChunkAlloc* allocator PATH_OPS_DEBUG_VALIDATE_PARAMS(SkOpGlobalState* ));
|
| bool addMissing(SkChunkAlloc* allocator);
|
| - void addMissing(SkCoincidentSpans* check, SkChunkAlloc* allocator);
|
| bool apply();
|
| - bool contains(SkOpPtT* coinPtTStart, SkOpPtT* coinPtTEnd, SkOpPtT* oppPtTStart,
|
| - SkOpPtT* oppPtTEnd, bool flipped);
|
| + bool contains(const SkOpPtT* coinPtTStart, const SkOpPtT* coinPtTEnd,
|
| + const SkOpPtT* oppPtTStart, const SkOpPtT* oppPtTEnd, bool flipped) const;
|
| +
|
| + void debugAddExpanded(const char* id, SkPathOpsDebug::GlitchLog* ) const;
|
| + void debugAddMissing(const char* id, SkPathOpsDebug::GlitchLog* ) const;
|
|
|
| const SkOpAngle* debugAngle(int id) const {
|
| return SkDEBUGRELEASE(fDebugState->debugAngle(id), nullptr);
|
| @@ -50,6 +57,9 @@ public:
|
| return SkDEBUGRELEASE(fDebugState->debugContour(id), nullptr);
|
| }
|
|
|
| + bool debugExpand(const char* id, SkPathOpsDebug::GlitchLog* ) const;
|
| + void debugMark(const char* id, SkPathOpsDebug::GlitchLog* ) const;
|
| +
|
| const SkOpPtT* debugPtT(int id) const {
|
| return SkDEBUGRELEASE(fDebugState->debugPtT(id), nullptr);
|
| }
|
| @@ -62,6 +72,7 @@ public:
|
| SkDEBUGCODE(fDebugState = debugState);
|
| }
|
|
|
| + void debugFixAligned(const char* id, SkPathOpsDebug::GlitchLog* ) const;
|
| void debugShowCoincidence() const;
|
|
|
| const SkOpSpanBase* debugSpan(int id) const {
|
| @@ -84,7 +95,7 @@ public:
|
| void mark();
|
|
|
| private:
|
| - void addIfMissing(const SkCoincidentSpans* outer, SkOpPtT* over1s, SkOpPtT* over1e,
|
| + bool addIfMissing(const SkCoincidentSpans* outer, SkOpPtT* over1s, SkOpPtT* over1e,
|
| SkChunkAlloc* );
|
| bool addIfMissing(const SkOpPtT* over1s, const SkOpPtT* over1e,
|
| const SkOpPtT* over2s, const SkOpPtT* over2e,
|
| @@ -94,11 +105,19 @@ private:
|
| SkChunkAlloc* );
|
| void addOverlap(SkOpSegment* seg1, SkOpSegment* seg1o, SkOpSegment* seg2, SkOpSegment* seg2o,
|
| SkOpPtT* overS, SkOpPtT* overE, SkChunkAlloc* );
|
| + bool debugAddIfMissing(const SkCoincidentSpans* outer, const SkOpPtT* over1s,
|
| + const SkOpPtT* over1e) const;
|
| + bool debugAddIfMissing(const SkOpPtT* over1s, const SkOpPtT* over1e,
|
| + const SkOpPtT* over2s, const SkOpPtT* over2e,
|
| + double tStart, double tEnd,
|
| + SkOpPtT* coinPtTStart, const SkOpPtT* coinPtTEnd,
|
| + SkOpPtT* oppPtTStart, const SkOpPtT* oppPtTEnd) const;
|
| bool overlap(const SkOpPtT* coinStart1, const SkOpPtT* coinEnd1,
|
| const SkOpPtT* coinStart2, const SkOpPtT* coinEnd2,
|
| double* overS, double* overE) const;
|
|
|
| - bool testForCoincidence(const SkCoincidentSpans* outer, SkOpPtT* testS, SkOpPtT* testE) const;
|
| + bool testForCoincidence(const SkCoincidentSpans* outer, const SkOpPtT* testS,
|
| + const SkOpPtT* testE) const;
|
| SkCoincidentSpans* fHead;
|
| SkCoincidentSpans* fTop;
|
| SkDEBUGCODE_(SkOpGlobalState* fDebugState);
|
|
|