aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pathops/SkOpSpan.cpp
diff options
context:
space:
mode:
authorGravatar caryclark <caryclark@google.com>2015-04-24 09:08:57 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-04-24 09:08:57 -0700
commit08bc8488fa2ea2d2a17efb1443f0ec6579d5a3c8 (patch)
tree9dbc81feaac0b80700e3fb7bc032adef3f1e062c /src/pathops/SkOpSpan.cpp
parente062db9cc6478745138cca964ee46839e413ab7b (diff)
fix multiple intersection logic
When three or more curves intersect at the same point, ensure that each curve records the intersections of the others. This fixes a number of cubic tests. TBR=reed@google.com BUG=skia:3588 Review URL: https://codereview.chromium.org/1105943002
Diffstat (limited to 'src/pathops/SkOpSpan.cpp')
-rwxr-xr-xsrc/pathops/SkOpSpan.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/pathops/SkOpSpan.cpp b/src/pathops/SkOpSpan.cpp
index 32d2376a0f..b75a692f74 100755
--- a/src/pathops/SkOpSpan.cpp
+++ b/src/pathops/SkOpSpan.cpp
@@ -275,6 +275,7 @@ void SkOpSpanBase::initBase(SkOpSegment* segment, SkOpSpan* prev, double t, cons
fCoinEnd = this;
fFromAngle = NULL;
fPrev = prev;
+ fSpanAdds = 0;
fAligned = true;
fChased = false;
SkDEBUGCODE(fCount = 1);
@@ -304,6 +305,7 @@ void SkOpSpanBase::merge(SkOpSpan* span) {
tryNextRemainder:
remainder = next;
}
+ fSpanAdds += span->fSpanAdds;
}
void SkOpSpan::applyCoincidence(SkOpSpan* opp) {