SkOpSegment* SkOpContour::undoneSegment(SkOpSpanBase** startPtr, SkOpSpanBase** endPtr) { SkOpSegment* segment = &fHead; do { if (segment->done()) { continue; } segment->undoneSpan(startPtr, endPtr); return segment; } while ((segment = segment->next())); return nullptr; }
SkOpSpan* SkOpContour::undoneSpan() { SkOpSegment* testSegment = &fHead; do { if (testSegment->done()) { continue; } return testSegment->undoneSpan(); } while ((testSegment = testSegment->next())); fDone = true; return nullptr; }
SkOpSegment* SkOpContour::undoneSegment(int* start, int* end) { int segmentCount = fSegments.count(); for (int test = 0; test < segmentCount; ++test) { SkOpSegment* testSegment = &fSegments[test]; if (testSegment->done()) { continue; } testSegment->undoneSpan(start, end); return testSegment; } return NULL; }