diff options
author | senorblanco <senorblanco@chromium.org> | 2016-03-21 14:51:59 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-21 14:51:59 -0700 |
commit | e5e79840ef38ab1d3f03abcf1b2df66fb9940018 (patch) | |
tree | 1401c257dfc5f6658c5911499d9037eaee9bacb5 /src/effects/SkComposeImageFilter.cpp | |
parent | 989da4a32cd6823359f31c971c3b3f31425e905e (diff) |
Change signatures of filter bounds methods to return a rect.
Change filterBounds(), onFilterBounds() and onFilterNodeBounds() and computeFastBounds() to
return the destination rectangle. There was no code path that could
return false, and returning rects by value is ok now.
BUG=skia:5094
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1823573003
Review URL: https://codereview.chromium.org/1823573003
Diffstat (limited to 'src/effects/SkComposeImageFilter.cpp')
-rw-r--r-- | src/effects/SkComposeImageFilter.cpp | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/effects/SkComposeImageFilter.cpp b/src/effects/SkComposeImageFilter.cpp index b9216611ab..86a4d50389 100644 --- a/src/effects/SkComposeImageFilter.cpp +++ b/src/effects/SkComposeImageFilter.cpp @@ -12,13 +12,11 @@ #include "SkWriteBuffer.h" -void SkComposeImageFilter::computeFastBounds(const SkRect& src, SkRect* dst) const { +SkRect SkComposeImageFilter::computeFastBounds(const SkRect& src) const { SkImageFilter* outer = getInput(0); SkImageFilter* inner = getInput(1); - SkRect tmp; - inner->computeFastBounds(src, &tmp); - outer->computeFastBounds(tmp, dst); + return outer->computeFastBounds(inner->computeFastBounds(src)); } SkSpecialImage* SkComposeImageFilter::onFilterImage(SkSpecialImage* source, const Context& ctx, @@ -27,7 +25,7 @@ SkSpecialImage* SkComposeImageFilter::onFilterImage(SkSpecialImage* source, cons // filter, so that the inner filter produces the pixels that the outer // filter requires as input. This matters if the outer filter moves pixels. SkIRect innerClipBounds; - getInput(0)->filterBounds(ctx.clipBounds(), ctx.ctm(), &innerClipBounds); + innerClipBounds = getInput(0)->filterBounds(ctx.clipBounds(), ctx.ctm()); Context innerContext(ctx.ctm(), innerClipBounds, ctx.cache()); SkIPoint innerOffset = SkIPoint::Make(0, 0); SkAutoTUnref<SkSpecialImage> inner(this->filterInput(1, source, innerContext, &innerOffset)); @@ -51,16 +49,12 @@ SkSpecialImage* SkComposeImageFilter::onFilterImage(SkSpecialImage* source, cons return outer.release(); } -bool SkComposeImageFilter::onFilterBounds(const SkIRect& src, - const SkMatrix& ctm, - SkIRect* dst, - MapDirection direction) const { +SkIRect SkComposeImageFilter::onFilterBounds(const SkIRect& src, const SkMatrix& ctm, + MapDirection direction) const { SkImageFilter* outer = this->getInput(0); SkImageFilter* inner = this->getInput(1); - SkIRect tmp; - return inner->filterBounds(src, ctm, &tmp, direction) && - outer->filterBounds(tmp, ctm, dst, direction); + return outer->filterBounds(inner->filterBounds(src, ctm, direction), ctm, direction); } SkFlattenable* SkComposeImageFilter::CreateProc(SkReadBuffer& buffer) { |