Lines Matching refs:coin
434 SkCoincidentSpans* coin = this->fHead;
435 if (!coin) {
439 const SkOpPtT* startPtT = coin->coinPtTStart();
440 const SkOpPtT* oStartPtT = coin->oppPtTStart();
444 SkOPASSERT(coin->coinPtTEnd()->contains(coin->oppPtTEnd()));
447 const SkOpSpanBase* end = coin->coinPtTEnd()->span();
448 const SkOpSpanBase* oEnd = coin->oppPtTEnd()->span();
452 FAIL_IF(!coin->flipped() && !oStart->upCastable());
453 const SkOpSpanBase* oTest = coin->flipped() ? oStart->prev() : oStart->upCast()->next();
477 && walk != coin->coinPtTEnd()->span());
502 end = coin->coinPtTEnd()->span();
503 oEnd = coin->oppPtTEnd()->span();
512 if (coin->flipped()) {
522 } while ((coin = coin->next()));
944 bool SkOpCoincidence::contains(const SkCoincidentSpans* coin, const SkOpSegment* seg,
946 if (!coin) {
950 if (coin->coinPtTStart()->segment() == seg && coin->oppPtTStart()->segment() == opp
951 && between(coin->oppPtTStart()->fT, oppT, coin->oppPtTEnd()->fT)) {
954 if (coin->oppPtTStart()->segment() == seg && coin->coinPtTStart()->segment() == opp
955 && between(coin->coinPtTStart()->fT, oppT, coin->coinPtTEnd()->fT)) {
958 } while ((coin = coin->next()));
1008 SkCoincidentSpans* coin = fHead;
1009 if (!coin) {
1013 coin->correctEnds();
1014 } while ((coin = coin->next()));
1020 SkCoincidentSpans* coin = fHead;
1021 if (!coin) {
1025 SkOpSpanBase* startSpan = coin->coinPtTStartWritable()->span();
1031 const SkOpSpanBase* end = coin->coinPtTEnd()->span();
1033 bool flipped = coin->flipped();
1034 SkOpSpanBase* oStartBase = (flipped ? coin->oppPtTEndWritable()
1035 : coin->oppPtTStartWritable())->span();
1041 const SkOpSpanBase* oEnd = (flipped ? coin->oppPtTStart() : coin->oppPtTEnd())->span();
1147 } while ((coin = coin->next()));
1152 bool SkOpCoincidence::release(SkCoincidentSpans* coin, SkCoincidentSpans* remove) {
1153 SkCoincidentSpans* head = coin;
1157 next = coin->next();
1158 if (coin == remove) {
1168 prev = coin;
1169 } while ((coin = next));
1170 return coin != nullptr;
1173 void SkOpCoincidence::releaseDeleted(SkCoincidentSpans* coin) {
1174 if (!coin) {
1177 SkCoincidentSpans* head = coin;
1181 next = coin->next();
1182 if (coin->coinPtTStart()->deleted()) {
1183 SkOPASSERT(coin->flipped() ? coin->oppPtTEnd()->deleted() :
1184 coin->oppPtTStart()->deleted());
1193 SkOPASSERT(coin->flipped() ? !coin->oppPtTEnd()->deleted() :
1194 !coin->oppPtTStart()->deleted());
1195 prev = coin;
1197 } while ((coin = next));
1228 SkCoincidentSpans* coin = fHead;
1229 if (!coin) {
1234 if (coin->expand()) {
1238 if (coin == test) {
1241 if (coin->coinPtTStart() == test->coinPtTStart()
1242 && coin->oppPtTStart() == test->oppPtTStart()) {
1249 } while ((coin = coin->next()));
1299 void SkOpCoincidence::fixUp(SkCoincidentSpans* coin, SkOpPtT* deleted, const SkOpPtT* kept) {
1300 SkCoincidentSpans* head = coin;
1302 if (coin->coinPtTStart() == deleted) {
1303 if (coin->coinPtTEnd()->span() == kept->span()) {
1304 this->release(head, coin);
1307 coin->setCoinPtTStart(kept);
1309 if (coin->coinPtTEnd() == deleted) {
1310 if (coin->coinPtTStart()->span() == kept->span()) {
1311 this->release(head, coin);
1314 coin->setCoinPtTEnd(kept);
1316 if (coin->oppPtTStart() == deleted) {
1317 if (coin->oppPtTEnd()->span() == kept->span()) {
1318 this->release(head, coin);
1321 coin->setOppPtTStart(kept);
1323 if (coin->oppPtTEnd() == deleted) {
1324 if (coin->oppPtTStart()->span() == kept->span()) {
1325 this->release(head, coin);
1328 coin->setOppPtTEnd(kept);
1330 } while ((coin = coin->next()));
1337 SkCoincidentSpans* coin = fHead;
1338 if (!coin) {
1342 SkOpSpanBase* startBase = coin->coinPtTStartWritable()->span();
1346 SkOpSpanBase* end = coin->coinPtTEndWritable()->span();
1348 SkOpSpanBase* oStart = coin->oppPtTStartWritable()->span();
1350 SkOpSpanBase* oEnd = coin->oppPtTEndWritable()->span();
1352 bool flipped = coin->flipped();
1357 /* coin and opp spans may not match up. Mark the ends, and then let the interior
1367 FAIL_IF(!coin->ordered(&ordered));
1376 } while ((coin = coin->next()));
1381 void SkOpCoincidence::markCollapsed(SkCoincidentSpans* coin, SkOpPtT* test) {
1382 SkCoincidentSpans* head = coin;
1383 while (coin) {
1384 if (coin->collapsed(test)) {
1385 if (zero_or_one(coin->coinPtTStart()->fT) && zero_or_one(coin->coinPtTEnd()->fT)) {
1386 coin->coinPtTStartWritable()->segment()->markAllDone();
1388 if (zero_or_one(coin->oppPtTStart()->fT) && zero_or_one(coin->oppPtTEnd()->fT)) {
1389 coin->oppPtTStartWritable()->segment()->markAllDone();
1391 this->release(head, coin);
1393 coin = coin->next();
1436 SkCoincidentSpans* coin = fHead;
1437 if (!coin) {
1441 if (coin->coinPtTStart()->segment() == deleted
1442 || coin->coinPtTEnd()->segment() == deleted
1443 || coin->oppPtTStart()->segment() == deleted
1444 || coin->oppPtTEnd()->segment() == deleted) {
1445 this->release(fHead, coin);
1447 } while ((coin = coin->next()));