aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2017-03-23 12:34:15 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-03-23 17:26:34 +0000
commit02be3c1c3f53858263df82b1db466b5bb7059ab0 (patch)
treec06b8251806559c256d6643079b912639befd594 /src
parent78075804c1e43ca32f3d8eb75d2a8b6c91e74b9b (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.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;
}