diff options
author | caryclark <caryclark@google.com> | 2015-04-24 09:08:57 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-24 09:08:57 -0700 |
commit | 08bc8488fa2ea2d2a17efb1443f0ec6579d5a3c8 (patch) | |
tree | 9dbc81feaac0b80700e3fb7bc032adef3f1e062c /src/pathops/SkOpSpan.cpp | |
parent | e062db9cc6478745138cca964ee46839e413ab7b (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-x | src/pathops/SkOpSpan.cpp | 2 |
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) { |