Index: src/pathops/SkAddIntersections.cpp |
diff --git a/src/pathops/SkAddIntersections.cpp b/src/pathops/SkAddIntersections.cpp |
index 620842bf8c8e61e49dc1511778132b14d7ce5517..52e751bd08d0129825b3cf0c097c3343d942a521 100644 |
--- a/src/pathops/SkAddIntersections.cpp |
+++ b/src/pathops/SkAddIntersections.cpp |
@@ -397,6 +397,7 @@ bool AddIntersectTs(SkOpContour* test, SkOpContour* next) { |
SkASSERT(ts[0][pt] >= 0 && ts[0][pt] <= 1); |
SkASSERT(ts[1][pt] >= 0 && ts[1][pt] <= 1); |
SkPoint point = ts.pt(pt).asSkPoint(); |
+ wt.alignTPt(wn, swap, pt, &ts, &point); |
int testTAt = wt.addT(wn, point, ts[swap][pt]); |
int nextTAt = wn.addT(wt, point, ts[!swap][pt]); |
wt.addOtherT(testTAt, ts[!swap][pt], nextTAt); |
@@ -437,6 +438,10 @@ void CoincidenceCheck(SkTArray<SkOpContour*, true>* contourList, int total) { |
int contourCount = (*contourList).count(); |
for (int cIndex = 0; cIndex < contourCount; ++cIndex) { |
SkOpContour* contour = (*contourList)[cIndex]; |
+ contour->resolveNearCoincidence(); |
+ } |
+ for (int cIndex = 0; cIndex < contourCount; ++cIndex) { |
+ SkOpContour* contour = (*contourList)[cIndex]; |
contour->addCoincidentPoints(); |
} |
for (int cIndex = 0; cIndex < contourCount; ++cIndex) { |