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/SkPathOpsDebug.cpp

Issue 2356363003: fix tiger b (Closed)
Patch Set: reset debug flags Created 4 years, 2 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/SkPathOpsDebug.h ('k') | src/pathops/SkPathOpsTSect.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 7
8 #include "SkMutex.h" 8 #include "SkMutex.h"
9 #include "SkOpCoincidence.h" 9 #include "SkOpCoincidence.h"
10 #include "SkOpContour.h" 10 #include "SkOpContour.h"
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 case kMoveNearbyReleaseFinal_Glitch: SkDebugf(" MoveNearbyReleaseFin al"); break; 364 case kMoveNearbyReleaseFinal_Glitch: SkDebugf(" MoveNearbyReleaseFin al"); break;
365 case kReleasedSpan_Glitch: SkDebugf(" ReleasedSpan"); break; 365 case kReleasedSpan_Glitch: SkDebugf(" ReleasedSpan"); break;
366 case kUnaligned_Glitch: SkDebugf(" Unaligned"); break; 366 case kUnaligned_Glitch: SkDebugf(" Unaligned"); break;
367 case kUnalignedHead_Glitch: SkDebugf(" UnalignedHead"); break; 367 case kUnalignedHead_Glitch: SkDebugf(" UnalignedHead"); break;
368 case kUnalignedTail_Glitch: SkDebugf(" UnalignedTail"); break; 368 case kUnalignedTail_Glitch: SkDebugf(" UnalignedTail"); break;
369 default: SkASSERT(0); 369 default: SkASSERT(0);
370 } 370 }
371 SkDebugf("\n"); 371 SkDebugf("\n");
372 } 372 }
373 contourList->globalState()->debugSetCheckHealth(false); 373 contourList->globalState()->debugSetCheckHealth(false);
374 #if 0 && DEBUG_ACTIVE_SPANS 374 #if 01 && DEBUG_ACTIVE_SPANS
375 SkDebugf("active after %s:\n", id); 375 SkDebugf("active after %s:\n", id);
376 ShowActiveSpans(contourList); 376 ShowActiveSpans(contourList);
377 #endif 377 #endif
378 #endif 378 #endif
379 } 379 }
380 #endif 380 #endif
381 381
382 #if defined SK_DEBUG || !FORCE_RELEASE 382 #if defined SK_DEBUG || !FORCE_RELEASE
383 void SkPathOpsDebug::MathematicaIze(char* str, size_t bufferLen) { 383 void SkPathOpsDebug::MathematicaIze(char* str, size_t bufferLen) {
384 size_t len = strlen(str); 384 size_t len = strlen(str);
(...skipping 1454 matching lines...) Expand 10 before | Expand all | Expand 10 after
1839 } 1839 }
1840 1840
1841 // Commented-out lines keep this in sync with markCollapsed() 1841 // Commented-out lines keep this in sync with markCollapsed()
1842 void SkOpCoincidence::debugMarkCollapsed(const char* id, SkPathOpsDebug::GlitchL og* log, const SkOpPtT* test) const { 1842 void SkOpCoincidence::debugMarkCollapsed(const char* id, SkPathOpsDebug::GlitchL og* log, const SkOpPtT* test) const {
1843 this->debugMarkCollapsed(id, log, fHead, test); 1843 this->debugMarkCollapsed(id, log, fHead, test);
1844 this->debugMarkCollapsed(id, log, fTop, test); 1844 this->debugMarkCollapsed(id, log, fTop, test);
1845 } 1845 }
1846 #endif 1846 #endif
1847 1847
1848 void SkCoincidentSpans::debugShow() const { 1848 void SkCoincidentSpans::debugShow() const {
1849 SkDebugf("%s - id=%d t=%1.9g tEnd=%1.9g\n", __FUNCTION__, 1849 SkDebugf("coinSpan - id=%d t=%1.9g tEnd=%1.9g\n", coinPtTStart()->segment()- >debugID(),
1850 coinPtTStart()->segment()->debugID(),
1851 coinPtTStart()->fT, coinPtTEnd()->fT); 1850 coinPtTStart()->fT, coinPtTEnd()->fT);
1852 SkDebugf("%s + id=%d t=%1.9g tEnd=%1.9g\n", __FUNCTION__, 1851 SkDebugf("coinSpan + id=%d t=%1.9g tEnd=%1.9g\n", oppPtTStart()->segment()-> debugID(),
1853 oppPtTStart()->segment()->debugID(),
1854 oppPtTStart()->fT, oppPtTEnd()->fT); 1852 oppPtTStart()->fT, oppPtTEnd()->fT);
1855 } 1853 }
1856 1854
1857 void SkOpCoincidence::debugShowCoincidence() const { 1855 void SkOpCoincidence::debugShowCoincidence() const {
1858 #if DEBUG_COINCIDENCE 1856 #if DEBUG_COINCIDENCE
1859 const SkCoincidentSpans* span = fHead; 1857 const SkCoincidentSpans* span = fHead;
1860 while (span) { 1858 while (span) {
1861 span->debugShow(); 1859 span->debugShow();
1862 span = span->next(); 1860 span = span->next();
1863 } 1861 }
1864 #endif 1862 #endif
1865 } 1863 }
1866 1864
1867 #if DEBUG_COINCIDENCE 1865 #if DEBUG_COINCIDENCE
1868 static void DebugValidate(const SkOpSpanBase* next, const SkOpSpanBase* end, 1866 static void DebugCheckBetween(const SkOpSpanBase* next, const SkOpSpanBase* end,
1869 double oStart, double oEnd, const SkOpSegment* oSegment, 1867 double oStart, double oEnd, const SkOpSegment* oSegment,
1870 const char* id, SkPathOpsDebug::GlitchLog* log) { 1868 const char* id, SkPathOpsDebug::GlitchLog* log) {
1871 SkASSERT(next != end); 1869 SkASSERT(next != end);
1872 SkASSERT(!next->contains(end) || log); 1870 SkASSERT(!next->contains(end) || log);
1873 if (next->t() > end->t()) { 1871 if (next->t() > end->t()) {
1874 SkTSwap(next, end); 1872 SkTSwap(next, end);
1875 } 1873 }
1876 do { 1874 do {
1877 const SkOpPtT* ptT = next->ptT(); 1875 const SkOpPtT* ptT = next->ptT();
1878 int index = 0; 1876 int index = 0;
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1979 const char* id, SkPathOpsDebug::GlitchLog* log) { 1977 const char* id, SkPathOpsDebug::GlitchLog* log) {
1980 // look for pts inside coincident spans that are not inside the opposite spa ns 1978 // look for pts inside coincident spans that are not inside the opposite spa ns
1981 const SkCoincidentSpans* coin = head; 1979 const SkCoincidentSpans* coin = head;
1982 while (coin) { 1980 while (coin) {
1983 SkASSERT(SkOpCoincidence::Ordered(coin->coinPtTStart()->segment(), 1981 SkASSERT(SkOpCoincidence::Ordered(coin->coinPtTStart()->segment(),
1984 coin->oppPtTStart()->segment())); 1982 coin->oppPtTStart()->segment()));
1985 SkASSERT(coin->coinPtTStart()->span()->ptT() == coin->coinPtTStart()); 1983 SkASSERT(coin->coinPtTStart()->span()->ptT() == coin->coinPtTStart());
1986 SkASSERT(coin->coinPtTEnd()->span()->ptT() == coin->coinPtTEnd()); 1984 SkASSERT(coin->coinPtTEnd()->span()->ptT() == coin->coinPtTEnd());
1987 SkASSERT(coin->oppPtTStart()->span()->ptT() == coin->oppPtTStart()); 1985 SkASSERT(coin->oppPtTStart()->span()->ptT() == coin->oppPtTStart());
1988 SkASSERT(coin->oppPtTEnd()->span()->ptT() == coin->oppPtTEnd()); 1986 SkASSERT(coin->oppPtTEnd()->span()->ptT() == coin->oppPtTEnd());
1989 DebugValidate(coin->coinPtTStart()->span(), coin->coinPtTEnd()->span(), 1987 coin = coin->next();
1988 }
1989 DebugCheckOverlapTop(head, opt, id, log);
1990 }
1991 #endif
1992
1993 void SkOpCoincidence::debugValidate() const {
1994 #if DEBUG_COINCIDENCE
1995 DebugValidate(fHead, fTop, nullptr, nullptr);
1996 DebugValidate(fTop, nullptr, nullptr, nullptr);
1997 #endif
1998 }
1999
2000 #if DEBUG_COINCIDENCE
2001 static void DebugCheckBetween(const SkCoincidentSpans* head, const SkCoincidentS pans* opt,
2002 const char* id, SkPathOpsDebug::GlitchLog* log) {
2003 // look for pts inside coincident spans that are not inside the opposite spa ns
2004 const SkCoincidentSpans* coin = head;
2005 while (coin) {
2006 DebugCheckBetween(coin->coinPtTStart()->span(), coin->coinPtTEnd()->span (),
1990 coin->oppPtTStart()->fT, coin->oppPtTEnd()->fT, coin->oppPtTStar t()->segment(), 2007 coin->oppPtTStart()->fT, coin->oppPtTEnd()->fT, coin->oppPtTStar t()->segment(),
1991 id, log); 2008 id, log);
1992 DebugValidate(coin->oppPtTStart()->span(), coin->oppPtTEnd()->span(), 2009 DebugCheckBetween(coin->oppPtTStart()->span(), coin->oppPtTEnd()->span() ,
1993 coin->coinPtTStart()->fT, coin->coinPtTEnd()->fT, coin->coinPtTS tart()->segment(), 2010 coin->coinPtTStart()->fT, coin->coinPtTEnd()->fT, coin->coinPtTS tart()->segment(),
1994 id, log); 2011 id, log);
1995 coin = coin->next(); 2012 coin = coin->next();
1996 } 2013 }
1997 DebugCheckOverlapTop(head, opt, id, log); 2014 DebugCheckOverlapTop(head, opt, id, log);
1998 } 2015 }
1999 #endif 2016 #endif
2000 2017
2001 void SkOpCoincidence::debugValidate() const { 2018 void SkOpCoincidence::debugCheckBetween() const {
2002 #if DEBUG_COINCIDENCE 2019 #if DEBUG_COINCIDENCE
2003 // if (fGlobalState->debugCheckHealth()) { 2020 if (fGlobalState->debugCheckHealth()) {
2004 // return; 2021 return;
2005 // } 2022 }
2006 DebugValidate(fHead, fTop, nullptr, nullptr); 2023 DebugCheckBetween(fHead, fTop, nullptr, nullptr);
2007 DebugValidate(fTop, nullptr, nullptr, nullptr); 2024 DebugCheckBetween(fTop, nullptr, nullptr, nullptr);
2008 #endif 2025 #endif
2009 } 2026 }
2010 2027
2011 #if DEBUG_COINCIDENCE_VERBOSE 2028 #if DEBUG_COINCIDENCE_VERBOSE
2012 void SkOpCoincidence::debugCheckValid(const char* id, SkPathOpsDebug::GlitchLog* log) const { 2029 void SkOpCoincidence::debugCheckValid(const char* id, SkPathOpsDebug::GlitchLog* log) const {
2013 DebugValidate(fHead, fTop, id, log); 2030 DebugValidate(fHead, fTop, id, log);
2014 DebugValidate(fTop, nullptr, id, log); 2031 DebugValidate(fTop, nullptr, id, log);
2015 } 2032 }
2016 #endif 2033 #endif
2017 2034
(...skipping 619 matching lines...) Expand 10 before | Expand all | Expand 10 after
2637 #endif 2654 #endif
2638 SkPath::FillType fillType = path.getFillType(); 2655 SkPath::FillType fillType = path.getFillType();
2639 SkASSERT(fillType >= SkPath::kWinding_FillType && fillType <= SkPath::kInver seEvenOdd_FillType); 2656 SkASSERT(fillType >= SkPath::kWinding_FillType && fillType <= SkPath::kInver seEvenOdd_FillType);
2640 if (includeDeclaration) { 2657 if (includeDeclaration) {
2641 SkDebugf(" SkPath %s;\n", name); 2658 SkDebugf(" SkPath %s;\n", name);
2642 } 2659 }
2643 SkDebugf(" %s.setFillType(SkPath::%s);\n", name, gFillTypeStr[fillType]); 2660 SkDebugf(" %s.setFillType(SkPath::%s);\n", name, gFillTypeStr[fillType]);
2644 iter.setPath(path); 2661 iter.setPath(path);
2645 showPathContours(iter, name); 2662 showPathContours(iter, name);
2646 } 2663 }
OLDNEW
« no previous file with comments | « src/pathops/SkPathOpsDebug.h ('k') | src/pathops/SkPathOpsTSect.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698