| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 #include "SkOpCoincidence.h" | 7 #include "SkOpCoincidence.h" |
| 8 #include "SkOpContour.h" | 8 #include "SkOpContour.h" |
| 9 #include "SkOpSegment.h" | 9 #include "SkOpSegment.h" |
| 10 #include "SkPathWriter.h" | 10 #include "SkPathWriter.h" |
| (...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 387 if (inner->deleted()) { | 387 if (inner->deleted()) { |
| 388 continue; | 388 continue; |
| 389 } | 389 } |
| 390 SkOpSpanBase* innerBase = inner->span(); | 390 SkOpSpanBase* innerBase = inner->span(); |
| 391 SkASSERT(innerBase->ptT() == inner); | 391 SkASSERT(innerBase->ptT() == inner); |
| 392 // when the intersection is first detected, the span base is marked
if there are | 392 // when the intersection is first detected, the span base is marked
if there are |
| 393 // more than one point in the intersection. | 393 // more than one point in the intersection. |
| 394 if (!zero_or_one(inner->fT)) { | 394 if (!zero_or_one(inner->fT)) { |
| 395 innerBase->upCast()->release(test); | 395 innerBase->upCast()->release(test); |
| 396 } else { | 396 } else { |
| 397 SkASSERT(inner->fT != test->fT); | 397 SkOPASSERT(inner->fT != test->fT); |
| 398 if (!zero_or_one(test->fT)) { | 398 if (!zero_or_one(test->fT)) { |
| 399 testBase->upCast()->release(inner); | 399 testBase->upCast()->release(inner); |
| 400 } else { | 400 } else { |
| 401 segment->markAllDone(); // mark segment as collapsed | 401 segment->markAllDone(); // mark segment as collapsed |
| 402 SkDEBUGCODE(testBase->debugSetDeleted()); | 402 SkDEBUGCODE(testBase->debugSetDeleted()); |
| 403 test->setDeleted(); | 403 test->setDeleted(); |
| 404 SkDEBUGCODE(innerBase->debugSetDeleted()); | 404 SkDEBUGCODE(innerBase->debugSetDeleted()); |
| 405 inner->setDeleted(); | 405 inner->setDeleted(); |
| 406 } | 406 } |
| 407 } | 407 } |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 484 } | 484 } |
| 485 } | 485 } |
| 486 #if DEBUG_COINCIDENCE | 486 #if DEBUG_COINCIDENCE |
| 487 SkASSERT(0); // FIXME? if we get here, the span is missing its opposite segm
ent... | 487 SkASSERT(0); // FIXME? if we get here, the span is missing its opposite segm
ent... |
| 488 #endif | 488 #endif |
| 489 return true; | 489 return true; |
| 490 } | 490 } |
| 491 | 491 |
| 492 void SkOpSpan::release(const SkOpPtT* kept) { | 492 void SkOpSpan::release(const SkOpPtT* kept) { |
| 493 SkDEBUGCODE(fDebugDeleted = true); | 493 SkDEBUGCODE(fDebugDeleted = true); |
| 494 SkASSERT(kept->span() != this); | 494 SkOPASSERT(kept->span() != this); |
| 495 SkASSERT(!final()); | 495 SkASSERT(!final()); |
| 496 SkOpSpan* prev = this->prev(); | 496 SkOpSpan* prev = this->prev(); |
| 497 SkASSERT(prev); | 497 SkASSERT(prev); |
| 498 SkOpSpanBase* next = this->next(); | 498 SkOpSpanBase* next = this->next(); |
| 499 SkASSERT(next); | 499 SkASSERT(next); |
| 500 prev->setNext(next); | 500 prev->setNext(next); |
| 501 next->setPrev(prev); | 501 next->setPrev(prev); |
| 502 this->segment()->release(this); | 502 this->segment()->release(this); |
| 503 SkOpCoincidence* coincidence = this->globalState()->coincidence(); | 503 SkOpCoincidence* coincidence = this->globalState()->coincidence(); |
| 504 if (coincidence) { | 504 if (coincidence) { |
| (...skipping 22 matching lines...) Expand all Loading... |
| 527 | 527 |
| 528 void SkOpSpan::setWindSum(int windSum) { | 528 void SkOpSpan::setWindSum(int windSum) { |
| 529 SkASSERT(!final()); | 529 SkASSERT(!final()); |
| 530 if (fWindSum != SK_MinS32 && fWindSum != windSum) { | 530 if (fWindSum != SK_MinS32 && fWindSum != windSum) { |
| 531 this->globalState()->setWindingFailed(); | 531 this->globalState()->setWindingFailed(); |
| 532 return; | 532 return; |
| 533 } | 533 } |
| 534 SkASSERT(!DEBUG_LIMIT_WIND_SUM || SkTAbs(windSum) <= DEBUG_LIMIT_WIND_SUM); | 534 SkASSERT(!DEBUG_LIMIT_WIND_SUM || SkTAbs(windSum) <= DEBUG_LIMIT_WIND_SUM); |
| 535 fWindSum = windSum; | 535 fWindSum = windSum; |
| 536 } | 536 } |
| OLD | NEW |