Lines Matching defs:start

48 SkOpAngle* SkOpSegment::activeAngle(SkOpSpanBase* start, SkOpSpanBase** startPtr,
50 if (SkOpAngle* result = activeAngleInner(start, startPtr, endPtr, done)) {
53 if (SkOpAngle* result = activeAngleOther(start, startPtr, endPtr, done)) {
59 SkOpAngle* SkOpSegment::activeAngleInner(SkOpSpanBase* start, SkOpSpanBase** startPtr,
61 SkOpSpan* upSpan = start->upCastable();
66 *startPtr = start;
71 return spanToAngle(start, next);
79 SkOpSpan* downSpan = start->prev();
84 *startPtr = start;
89 return spanToAngle(start, downSpan);
100 SkOpAngle* SkOpSegment::activeAngleOther(SkOpSpanBase* start, SkOpSpanBase** startPtr,
102 SkOpPtT* oPtT = start->ptT()->next();
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);
175 path->deferredMove(start->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())) {
541 SkOpSpanBase* start = *nextStart;
543 SkASSERT(start != end);
544 int step = start->step(end);
552 SkOpSpan* startSpan = start->starter(end);
563 SkASSERT(start != endNear);
564 SkASSERT((start->t() < endNear->t()) ^ (step < 0));
566 int calcWinding = computeSum(start, endNear, SkOpAngle::kBinaryOpp);
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);
602 bool activeAngle = nextSegment->activeOp(xorMiMask, xorSuMask, nextAngle->start(),
615 (void) nextSegment->markAndChaseDone(nextAngle->start(), nextAngle->end(), nullptr);
631 start->segment()->markDone(start->starter(end));
635 *nextStart = foundAngle->start();
639 SkDebugf("%s from:[%d] to:[%d] start=%d end=%d\n",
647 SkOpSpanBase* start = *nextStart;
649 SkASSERT(start != end);
650 int step = start->step(end);
658 SkOpSpan* startSpan = start->starter(end);
669 SkASSERT(start != endNear);
670 SkASSERT((start->t() < endNear->t()) ^ (step < 0));
672 int calcWinding = computeSum(start, endNear, SkOpAngle::kUnaryWinding);
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));
731 *nextStart = foundAngle->start();
735 SkDebugf("%s from:[%d] to:[%d] start=%d end=%d\n",
743 SkOpSpanBase* start = *nextStart;
745 SkASSERT(start != end);
746 int step = start->step(end);
754 SkOpSpan* startSpan = start->starter(end);
766 SkASSERT(start != endNear);
767 SkASSERT((start->t() < endNear->t()) ^ (step < 0));
768 SkOpAngle* angle = this->spanToAngle(end, start);
771 markDone(start->starter(end));
798 start->segment()->markDone(start->starter(end));
802 *nextStart = foundAngle->start();
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);
868 while ((other = other->nextChase(&start, &step, &minSpan, &last))) {
892 bool SkOpSegment::markAndChaseWinding(SkOpSpanBase* start, SkOpSpanBase* end, int winding,
894 SkOpSpan* spanStart = start->starter(end);
895 int step = start->step(end);
900 while ((other = other->nextChase(&start, &step, &spanStart, &last))) {
917 bool SkOpSegment::markAndChaseWinding(SkOpSpanBase* start, SkOpSpanBase* end,
919 SkOpSpan* spanStart = start->starter(end);
920 int step = start->step(end);
925 while ((other = other->nextChase(&start, &step, &spanStart, &last))) {
960 if (!markAndChaseWinding(angle->start(), angle->end(), maxWinding, result)) {
988 if (!markAndChaseWinding(angle->start(), angle->end(), maxWinding, oppMaxWinding, result)) {
1107 foundSpan = endSpan = next->start();
1277 do { // iterate through all spans associated with start
1466 do { // iterate through all spans associated with start
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);
1621 const SkOpPtT& startPtT = *start->ptT();
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);
1726 const SkOpSpanBase* startSpan = angle->start();
1732 const SkOpSpanBase* startSpan = angle->start();
1737 int SkOpSegment::updateWinding(SkOpSpanBase* start, SkOpSpanBase* end) {
1738 SkOpSpan* lesser = start->starter(end);
1746 int spanWinding = SkOpSegment::SpanSign(start, end);
1755 SkOpSpanBase* startSpan = angle->start();
1761 SkOpSpanBase* startSpan = angle->start();
1779 const SkOpSpan* minSpan = angle->start()->starter(angle->end());