diff options
author | 2015-10-28 14:17:16 -0700 | |
---|---|---|
committer | 2015-10-28 14:17:17 -0700 | |
commit | 4449398b324a7d6226a71e766561ace0028b5153 (patch) | |
tree | 3b40d0ef63d0ff058e3099dd2bc4d9e7ac0a083f /src/core/SkImageFilter.cpp | |
parent | a3f792d4d4fa344704ca245ef6d702429a202a37 (diff) |
Make SkImageFilter::applyCropRect() optionally compute srcBounds.
BUG=skia:4526
Review URL: https://codereview.chromium.org/1410553007
Diffstat (limited to 'src/core/SkImageFilter.cpp')
-rw-r--r-- | src/core/SkImageFilter.cpp | 14 |
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, |