aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/SkCanvas.cpp5
-rw-r--r--src/core/SkRasterClip.cpp4
2 files changed, 6 insertions, 3 deletions
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 45acc535d7..030180475d 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -1610,9 +1610,14 @@ void SkCanvas::temporary_internal_getRgnClip(SkRegion* rgn) {
///////////////////////////////////////////////////////////////////////////////
bool SkCanvas::isClipEmpty() const {
+ return fMCRec->fRasterClip.isEmpty();
+
+ // TODO: should we only use the conservative answer in a recording canvas?
+#if 0
SkBaseDevice* dev = this->getTopDevice();
// if no device we return true
return !dev || dev->onGetClipType() == SkBaseDevice::kEmpty_ClipType;
+#endif
}
bool SkCanvas::isClipRect() const {
diff --git a/src/core/SkRasterClip.cpp b/src/core/SkRasterClip.cpp
index 090297d8ba..a08119a34d 100644
--- a/src/core/SkRasterClip.cpp
+++ b/src/core/SkRasterClip.cpp
@@ -108,10 +108,8 @@ void SkConservativeClip::op(const SkRegion& rgn, SkRegion::Op op) {
void SkConservativeClip::op(const SkIRect& devRect, SkRegion::Op op) {
if (SkRegion::kIntersect_Op == op) {
- if (devRect.isEmpty()) {
+ if (!fBounds.intersect(devRect)) {
fBounds.setEmpty();
- } else {
- (void)fBounds.intersect(devRect);
}
return;
}