Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: src/pathops/SkOpContour.cpp

Issue 463883002: fix pathops skp-derived bugs; add more failing tests (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/pathops/SkOpAngle.h ('k') | src/pathops/SkOpSegment.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 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 "SkIntersections.h" 7 #include "SkIntersections.h"
8 #include "SkOpContour.h" 8 #include "SkOpContour.h"
9 #include "SkPathWriter.h" 9 #include "SkPathWriter.h"
10 #include "SkTSort.h" 10 #include "SkTSort.h"
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 addTo2->addTPair(missingT2, addOther2, otherT2, false, missingPt2); 445 addTo2->addTPair(missingT2, addOther2, otherT2, false, missingPt2);
446 } else { 446 } else {
447 SkASSERT(minTIndex >= 0); 447 SkASSERT(minTIndex >= 0);
448 missingPt2 = refSegment->span(maxTIndex).fPt; 448 missingPt2 = refSegment->span(maxTIndex).fPt;
449 } 449 }
450 if (!partial) { 450 if (!partial) {
451 return; 451 return;
452 } 452 }
453 if (cancelers) { 453 if (cancelers) {
454 if (missingT1 >= 0) { 454 if (missingT1 >= 0) {
455 if (addTo1->reversePoints(missingPt1, missingPt2)) {
456 SkTSwap(missingPt1, missingPt2);
457 }
455 addTo1->addTCancel(missingPt1, missingPt2, addOther1); 458 addTo1->addTCancel(missingPt1, missingPt2, addOther1);
456 } else { 459 } else {
460 if (addTo2->reversePoints(missingPt1, missingPt2)) {
461 SkTSwap(missingPt1, missingPt2);
462 }
457 addTo2->addTCancel(missingPt1, missingPt2, addOther2); 463 addTo2->addTCancel(missingPt1, missingPt2, addOther2);
458 } 464 }
459 } else if (missingT1 >= 0) { 465 } else if (missingT1 >= 0) {
460 addTo1->addTCoincident(missingPt1, missingPt2, addTo1 == addTo2 ? missin gT2 : otherT2, 466 addTo1->addTCoincident(missingPt1, missingPt2, addTo1 == addTo2 ? missin gT2 : otherT2,
461 addOther1); 467 addOther1);
462 } else { 468 } else {
463 addTo2->addTCoincident(missingPt2, missingPt1, addTo2 == addTo1 ? missin gT1 : otherT1, 469 addTo2->addTCoincident(missingPt2, missingPt1, addTo2 == addTo1 ? missin gT1 : otherT1,
464 addOther2); 470 addOther2);
465 } 471 }
466 } 472 }
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
741 SkDebugf("%s empty contour\n", __FUNCTION__); 747 SkDebugf("%s empty contour\n", __FUNCTION__);
742 SkASSERT(0); 748 SkASSERT(0);
743 // FIXME: delete empty contour? 749 // FIXME: delete empty contour?
744 return; 750 return;
745 } 751 }
746 fBounds = fSegments.front().bounds(); 752 fBounds = fSegments.front().bounds();
747 for (int index = 1; index < count; ++index) { 753 for (int index = 1; index < count; ++index) {
748 fBounds.add(fSegments[index].bounds()); 754 fBounds.add(fSegments[index].bounds());
749 } 755 }
750 } 756 }
OLDNEW
« no previous file with comments | « src/pathops/SkOpAngle.h ('k') | src/pathops/SkOpSegment.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698