SkPathOp::kDifference_SkPathOp failed in SkOpCoincidence assertion

32 views
Skip to first unread message

Jiulong Wang

unread,
Dec 17, 2020, 8:31:56 PM12/17/20
to skia-discuss
Hi Skia Team,

I noticed sometimes SkPathOp fails to process kDifference_SkPathOp operation.  I created a Gerrit CL test case to repro the problem: https://skia-review.googlesource.com/c/skia/+/345540

The first argument to Op is a kWinding path containing 5 contours.  The second one is a single contour kEvenOdd path.  If I remove any one or more contours from the first path, the test would pass.

The failed assertion is here:

bool SkOpCoincidence::addOverlap(const SkOpSegment* seg1, const SkOpSegment* seg1o,
const SkOpSegment* seg2, const SkOpSegment* seg2o,
const SkOpPtT* overS, const SkOpPtT* overE) {
  const SkOpPtT* s1 = overS->find(seg1);
  const SkOpPtT* e1 = overE->find(seg1);
  FAIL_IF(!s1);
  FAIL_IF(!e1);


Let me know if you need any additional information from me.

Thanks,
-Jiulong
Reply all
Reply to author
Forward
0 new messages