hide getTotalClip, so we can eventually remove it
hide getClipType, so we can eventually remove it
patch from issue 189443007
TBR=robertphilips@google.com
Author: reed@chromium.org
Review URL: https://codereview.chromium.org/189883010
git-svn-id: http://skia.googlecode.com/svn/trunk@13715 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 58ec8fd..9dcbfdb 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -1526,7 +1526,7 @@
// construct clipRgn from the clipstack
const SkBaseDevice* device = this->getDevice();
if (!device) {
- SkASSERT(this->getTotalClip().isEmpty());
+ SkASSERT(this->isClipEmpty());
return;
}
@@ -1553,12 +1553,6 @@
}
}
}
-
-#if 0 // enable this locally for testing
- // now compare against the current rgn
- const SkRegion& rgn = this->getTotalClip();
- SkASSERT(rgn == tmpClip);
-#endif
}
#endif
@@ -1591,6 +1585,10 @@
return fMCRec->fRasterClip->isEmpty();
}
+bool SkCanvas::isClipRect() const {
+ return fMCRec->fRasterClip->isRect();
+}
+
bool SkCanvas::quickReject(const SkRect& rect) const {
if (!rect.isFinite())
@@ -1671,6 +1669,7 @@
return *fMCRec->fMatrix;
}
+#ifdef SK_SUPPORT_LEGACY_GETCLIPTYPE
SkCanvas::ClipType SkCanvas::getClipType() const {
if (fMCRec->fRasterClip->isEmpty()) {
return kEmpty_ClipType;
@@ -1680,10 +1679,27 @@
}
return kComplex_ClipType;
}
+#endif
+#ifdef SK_SUPPORT_LEGACY_GETTOTALCLIP
const SkRegion& SkCanvas::getTotalClip() const {
return fMCRec->fRasterClip->forceGetBW();
}
+#endif
+
+const SkRegion& SkCanvas::internal_private_getTotalClip() const {
+ return fMCRec->fRasterClip->forceGetBW();
+}
+
+void SkCanvas::internal_private_getTotalClipAsPath(SkPath* path) const {
+ path->reset();
+
+ const SkRegion& rgn = fMCRec->fRasterClip->forceGetBW();
+ if (rgn.isEmpty()) {
+ return;
+ }
+ (void)rgn.getBoundaryPath(path);
+}
SkBaseDevice* SkCanvas::createLayerDevice(const SkImageInfo& info) {
SkBaseDevice* device = this->getTopDevice();
diff --git a/src/utils/SkCanvasStateUtils.cpp b/src/utils/SkCanvasStateUtils.cpp
index 4b8868b..c5b558a 100644
--- a/src/utils/SkCanvasStateUtils.cpp
+++ b/src/utils/SkCanvasStateUtils.cpp
@@ -194,7 +194,8 @@
SkAutoTDelete<SkCanvasState> canvasState(SkNEW_ARGS(SkCanvasState, (canvas)));
// decompose the total matrix and clip
- setup_MC_state(&canvasState->mcState, canvas->getTotalMatrix(), canvas->getTotalClip());
+ setup_MC_state(&canvasState->mcState, canvas->getTotalMatrix(),
+ canvas->internal_private_getTotalClip());
/*
* decompose the layers
diff --git a/src/utils/debugger/SkDebugCanvas.cpp b/src/utils/debugger/SkDebugCanvas.cpp
index 066d7a6..08e6d94 100644
--- a/src/utils/debugger/SkDebugCanvas.cpp
+++ b/src/utils/debugger/SkDebugCanvas.cpp
@@ -328,7 +328,9 @@
canvas->restore();
}
fMatrix = canvas->getTotalMatrix();
- fClip = canvas->getTotalClip().getBounds();
+ if (!canvas->getClipDeviceBounds(&fClip)) {
+ fClip.setEmpty();
+ }
fIndex = index;
}
diff --git a/src/utils/debugger/SkDebugCanvas.h b/src/utils/debugger/SkDebugCanvas.h
index b978036..0bbb640 100644
--- a/src/utils/debugger/SkDebugCanvas.h
+++ b/src/utils/debugger/SkDebugCanvas.h
@@ -226,9 +226,12 @@
static const int kVizImageWidth = 256;
virtual bool isClipEmpty() const SK_OVERRIDE { return false; }
+ virtual bool isClipRect() const SK_OVERRIDE { return true; }
+#ifdef SK_SUPPORT_LEGACY_GETCLIPTYPE
virtual ClipType getClipType() const SK_OVERRIDE {
return kRect_ClipType;
}
+#endif
virtual bool getClipBounds(SkRect* bounds) const SK_OVERRIDE {
if (NULL != bounds) {
bounds->setXYWH(0, 0,