Lines Matching refs:end
108 bool SkOpSegment::activeOp(SkOpSpanBase* start, SkOpSpanBase* end, int xorMiMask, int xorSuMask,
110 int sumMiWinding = this->updateWinding(end, start);
111 int sumSuWinding = this->updateOppWinding(end, start);
120 return this->activeOp(xorMiMask, xorSuMask, start, end, op, &sumMiWinding, &sumSuWinding);
123 bool SkOpSegment::activeOp(int xorMiMask, int xorSuMask, SkOpSpanBase* start, SkOpSpanBase* end,
126 this->setUpWindings(start, end, sumMiWinding, sumSuWinding,
146 __FUNCTION__, debugID(), start->t(), end->t(),
152 bool SkOpSegment::activeWinding(SkOpSpanBase* start, SkOpSpanBase* end) {
153 int sumWinding = updateWinding(end, start);
154 return activeWinding(start, end, &sumWinding);
157 bool SkOpSegment::activeWinding(SkOpSpanBase* start, SkOpSpanBase* end, int* sumWinding) {
159 setUpWinding(start, end, &maxWinding, sumWinding);
166 bool SkOpSegment::addCurveTo(const SkOpSpanBase* start, const SkOpSpanBase* end,
168 const SkOpSpan* spanStart = start->starter(end);
172 start->segment()->subDivide(start, end, &curvePart.fCurve);
178 FAIL_IF(!path->deferredLine(end->ptT()));
181 path->quadTo(curvePart.fCurve.fQuad[1].asSkPoint(), end->ptT());
184 path->conicTo(curvePart.fCurve.fConic[1].asSkPoint(), end->ptT(),
189 curvePart.fCurve.fCubic[2].asSkPoint(), end->ptT());
361 nextSegment->setUpWindings(nextAngle->start(), nextAngle->end(), &sumMiWinding,
368 nextSegment->setUpWindings(nextAngle->start(), nextAngle->end(), &sumMiWinding,
396 nextSegment->setUpWindings(nextAngle->end(), nextAngle->start(), &sumMiWinding,
403 nextSegment->setUpWindings(nextAngle->end(), nextAngle->start(), &sumMiWinding,
414 int SkOpSegment::computeSum(SkOpSpanBase* start, SkOpSpanBase* end,
417 SkOpAngle* firstAngle = this->spanToAngle(end, start);
481 return start->starter(end)->windSum();
519 if (!between(oppAngle->start()->t(), i[0][index], oppAngle->end()->t())) {
542 SkOpSpanBase* end = *nextEnd;
543 SkASSERT(start != end);
544 int step = start->step(end);
552 SkOpSpan* startSpan = start->starter(end);
561 SkASSERT(endNear == end); // is this ever not end?
570 markDone(start->starter(end));
573 SkOpAngle* angle = this->spanToAngle(end, start);
576 markDone(start->starter(end));
583 int sumMiWinding = updateWinding(end, start);
586 markDone(start->starter(end));
589 int sumSuWinding = updateOppWinding(end, start);
603 nextAngle->end(), op, &sumMiWinding, &sumSuWinding);
615 (void) nextSegment->markAndChaseDone(nextAngle->start(), nextAngle->end(), nullptr);
631 start->segment()->markDone(start->starter(end));
636 *nextEnd = foundAngle->end();
639 SkDebugf("%s from:[%d] to:[%d] start=%d end=%d\n",
648 SkOpSpanBase* end = *nextEnd;
649 SkASSERT(start != end);
650 int step = start->step(end);
658 SkOpSpan* startSpan = start->starter(end);
667 SkASSERT(endNear == end); // is this ever not end?
676 markDone(start->starter(end));
679 SkOpAngle* angle = this->spanToAngle(end, start);
682 markDone(start->starter(end));
689 int sumWinding = updateWinding(end, start);
698 bool activeAngle = nextSegment->activeWinding(nextAngle->start(), nextAngle->end(),
711 (void) nextSegment->markAndChaseDone(nextAngle->start(), nextAngle->end(), nullptr);
727 start->segment()->markDone(start->starter(end));
732 *nextEnd = foundAngle->end();
735 SkDebugf("%s from:[%d] to:[%d] start=%d end=%d\n",
744 SkOpSpanBase* end = *nextEnd;
745 SkASSERT(start != end);
746 int step = start->step(end);
754 SkOpSpan* startSpan = start->starter(end);
764 SkASSERT(endNear == end); // is this ever not end?
768 SkOpAngle* angle = this->spanToAngle(end, start);
771 markDone(start->starter(end));
798 start->segment()->markDone(start->starter(end));
803 *nextEnd = foundAngle->end();
806 SkDebugf("%s from:[%d] to:[%d] start=%d end=%d\n",
859 bool SkOpSegment::markAndChaseDone(SkOpSpanBase* start, SkOpSpanBase* end, SkOpSpanBase** found) {
860 int step = start->step(end);
861 SkOpSpan* minSpan = start->starter(end);
892 bool SkOpSegment::markAndChaseWinding(SkOpSpanBase* start, SkOpSpanBase* end, int winding,
894 SkOpSpan* spanStart = start->starter(end);
895 int step = start->step(end);
917 bool SkOpSegment::markAndChaseWinding(SkOpSpanBase* start, SkOpSpanBase* end,
919 SkOpSpan* spanStart = start->starter(end);
920 int step = start->step(end);
960 if (!markAndChaseWinding(angle->start(), angle->end(), maxWinding, result)) {
988 if (!markAndChaseWinding(angle->start(), angle->end(), maxWinding, oppMaxWinding, result)) {
1108 otherEnd = next->end();
1152 // the end of C that the intersection is replaced with the end of C.
1515 void SkOpSegment::setUpWindings(SkOpSpanBase* start, SkOpSpanBase* end, int* sumMiWinding,
1517 int deltaSum = SpanSign(start, end);
1523 void SkOpSegment::setUpWindings(SkOpSpanBase* start, SkOpSpanBase* end, int* sumMiWinding,
1526 int deltaSum = SpanSign(start, end);
1527 int oppDeltaSum = OppSign(start, end);
1618 bool SkOpSegment::subDivide(const SkOpSpanBase* start, const SkOpSpanBase* end,
1620 SkASSERT(start != end);
1622 const SkOpPtT& endPtT = *end->ptT();
1671 // if the mid pt is not near either end pt, project perpendicular through opp seg
1714 int SkOpSegment::updateOppWinding(const SkOpSpanBase* start, const SkOpSpanBase* end) const {
1715 const SkOpSpan* lesser = start->starter(end);
1717 int oppSpanWinding = SkOpSegment::OppSign(start, end);
1727 const SkOpSpanBase* endSpan = angle->end();
1733 const SkOpSpanBase* endSpan = angle->end();
1737 int SkOpSegment::updateWinding(SkOpSpanBase* start, SkOpSpanBase* end) {
1738 SkOpSpan* lesser = start->starter(end);
1746 int spanWinding = SkOpSegment::SpanSign(start, end);
1756 SkOpSpanBase* endSpan = angle->end();
1762 SkOpSpanBase* endSpan = angle->end();
1779 const SkOpSpan* minSpan = angle->start()->starter(angle->end());