diff options
author | 2017-03-23 12:34:15 -0400 | |
---|---|---|
committer | 2017-03-23 17:26:34 +0000 | |
commit | 02be3c1c3f53858263df82b1db466b5bb7059ab0 (patch) | |
tree | c06b8251806559c256d6643079b912639befd594 /src | |
parent | 78075804c1e43ca32f3d8eb75d2a8b6c91e74b9b (diff) |
add test and fix for canvas::isClipEmpty
BUG=skia:
Change-Id: I4e57e0da7111e861fbae1b88574bc1803442243c
Reviewed-on: https://skia-review.googlesource.com/10046
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
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; } |