diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/SkCanvas.cpp | 5 | ||||
-rw-r--r-- | src/core/SkRasterClip.cpp | 4 |
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; } |