aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pathops/SkPathOpsTypes.h
diff options
context:
space:
mode:
authorGravatar caryclark <caryclark@google.com>2015-07-06 11:38:33 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-07-06 11:38:33 -0700
commit27c8eb8ffd7e221693d840c2b9279d53fe6f03d4 (patch)
tree67fbbc378aced5c5de9ec9611021db6ef7659c3c /src/pathops/SkPathOpsTypes.h
parent334e588d9ed5390efb82beb37329b56a380f1d0e (diff)
When three or more edges are coincident, the logic needs
to compute the overlapping ranges and combine the winding into a single destination. This computes coincidence more rigorously, fixing the edge cases exposed by this bug. Also, add the ability to debug and dump pathop structures from the coincident context. TBR=reed@google.com BUG=skia:3651 Review URL: https://codereview.chromium.org/1182493015
Diffstat (limited to 'src/pathops/SkPathOpsTypes.h')
-rw-r--r--src/pathops/SkPathOpsTypes.h15
1 files changed, 2 insertions, 13 deletions
diff --git a/src/pathops/SkPathOpsTypes.h b/src/pathops/SkPathOpsTypes.h
index 13ebfee84d..9550aa1ead 100644
--- a/src/pathops/SkPathOpsTypes.h
+++ b/src/pathops/SkPathOpsTypes.h
@@ -28,19 +28,7 @@ class SkOpContourHead;
class SkOpGlobalState {
public:
- SkOpGlobalState(SkOpCoincidence* coincidence, SkOpContourHead* head)
- : fCoincidence(coincidence)
- , fContourHead(head)
- , fNested(0)
- , fWindingFailed(false)
- , fAngleCoincidence(false)
- , fPhase(kIntersecting)
- SkDEBUGPARAMS(fAngleID(0))
- SkDEBUGPARAMS(fContourID(0))
- SkDEBUGPARAMS(fPtTID(0))
- SkDEBUGPARAMS(fSegmentID(0))
- SkDEBUGPARAMS(fSpanID(0)) {
- }
+ SkOpGlobalState(SkOpCoincidence* coincidence, SkOpContourHead* head);
enum Phase {
kIntersecting,
@@ -76,6 +64,7 @@ public:
const struct SkOpAngle* debugAngle(int id) const;
SkOpContour* debugContour(int id);
const class SkOpPtT* debugPtT(int id) const;
+ bool debugRunFail() const;
const class SkOpSegment* debugSegment(int id) const;
const class SkOpSpanBase* debugSpan(int id) const;
#endif