aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkImageFilter.cpp
diff options
context:
space:
mode:
authorGravatar senorblanco <senorblanco@chromium.org>2015-10-28 14:17:16 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-10-28 14:17:17 -0700
commit4449398b324a7d6226a71e766561ace0028b5153 (patch)
tree3b40d0ef63d0ff058e3099dd2bc4d9e7ac0a083f /src/core/SkImageFilter.cpp
parenta3f792d4d4fa344704ca245ef6d702429a202a37 (diff)
Make SkImageFilter::applyCropRect() optionally compute srcBounds.
Diffstat (limited to 'src/core/SkImageFilter.cpp')
-rw-r--r--src/core/SkImageFilter.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp
index 95793025e8..25eecb0b5d 100644
--- a/src/core/SkImageFilter.cpp
+++ b/src/core/SkImageFilter.cpp
@@ -391,11 +391,15 @@ bool SkImageFilter::filterImageGPU(Proxy* proxy, const SkBitmap& src, const Cont
}
bool SkImageFilter::applyCropRect(const Context& ctx, const SkBitmap& src,
- const SkIPoint& srcOffset, SkIRect* bounds) const {
- SkIRect srcBounds;
- src.getBounds(&srcBounds);
- srcBounds.offset(srcOffset);
- return fCropRect.applyTo(srcBounds, ctx, bounds);
+ const SkIPoint& srcOffset, SkIRect* dstBounds,
+ SkIRect* srcBounds) const {
+ SkIRect storage;
+ if (!srcBounds) {
+ srcBounds = &storage;
+ }
+ src.getBounds(srcBounds);
+ srcBounds->offset(srcOffset);
+ return fCropRect.applyTo(*srcBounds, ctx, dstBounds) && srcBounds->intersect(*dstBounds);
}
bool SkImageFilter::applyCropRect(const Context& ctx, Proxy* proxy, const SkBitmap& src,