| Index: src/effects/SkComposeImageFilter.cpp
|
| diff --git a/src/effects/SkComposeImageFilter.cpp b/src/effects/SkComposeImageFilter.cpp
|
| index 2ec7683e9be269b2cf4b318e156f1cee7c1e2321..90844ef9dca23b35189c928846ac7372e945b48b 100644
|
| --- a/src/effects/SkComposeImageFilter.cpp
|
| +++ b/src/effects/SkComposeImageFilter.cpp
|
| @@ -5,13 +5,12 @@
|
| * found in the LICENSE file.
|
| */
|
|
|
| -#include "SkBitmap.h"
|
| #include "SkComposeImageFilter.h"
|
| +
|
| #include "SkReadBuffer.h"
|
| +#include "SkSpecialImage.h"
|
| #include "SkWriteBuffer.h"
|
|
|
| -SkComposeImageFilter::~SkComposeImageFilter() {
|
| -}
|
|
|
| void SkComposeImageFilter::computeFastBounds(const SkRect& src, SkRect* dst) const {
|
| SkImageFilter* outer = getInput(0);
|
| @@ -22,36 +21,36 @@ void SkComposeImageFilter::computeFastBounds(const SkRect& src, SkRect* dst) con
|
| outer->computeFastBounds(tmp, dst);
|
| }
|
|
|
| -bool SkComposeImageFilter::onFilterImageDeprecated(Proxy* proxy,
|
| - const SkBitmap& src,
|
| - const Context& ctx,
|
| - SkBitmap* result,
|
| - SkIPoint* offset) const {
|
| - SkBitmap tmp;
|
| +SkSpecialImage* SkComposeImageFilter::onFilterImage(SkSpecialImage* source, const Context& ctx,
|
| + SkIPoint* offset) const {
|
| SkIPoint innerOffset = SkIPoint::Make(0, 0);
|
| - SkIPoint outerOffset = SkIPoint::Make(0, 0);
|
| - if (!this->filterInputDeprecated(1, proxy, src, ctx, &tmp, &innerOffset))
|
| - return false;
|
| + SkAutoTUnref<SkSpecialImage> inner(this->filterInput(1, source, ctx, &innerOffset));
|
| + if (!inner) {
|
| + return nullptr;
|
| + }
|
|
|
| SkMatrix outerMatrix(ctx.ctm());
|
| outerMatrix.postTranslate(SkIntToScalar(-innerOffset.x()), SkIntToScalar(-innerOffset.y()));
|
| SkIRect clipBounds = ctx.clipBounds();
|
| clipBounds.offset(-innerOffset.x(), -innerOffset.y());
|
| Context outerContext(outerMatrix, clipBounds, ctx.cache());
|
| - if (!this->filterInputDeprecated(0, proxy, tmp, outerContext, result, &outerOffset)) {
|
| - return false;
|
| +
|
| + SkIPoint outerOffset = SkIPoint::Make(0, 0);
|
| + SkAutoTUnref<SkSpecialImage> outer(this->filterInput(0, inner, outerContext, &outerOffset));
|
| + if (!outer) {
|
| + return nullptr;
|
| }
|
|
|
| *offset = innerOffset + outerOffset;
|
| - return true;
|
| + return outer.release();
|
| }
|
|
|
| bool SkComposeImageFilter::onFilterBounds(const SkIRect& src,
|
| const SkMatrix& ctm,
|
| SkIRect* dst,
|
| MapDirection direction) const {
|
| - SkImageFilter* outer = getInput(0);
|
| - SkImageFilter* inner = getInput(1);
|
| + SkImageFilter* outer = this->getInput(0);
|
| + SkImageFilter* inner = this->getInput(1);
|
|
|
| SkIRect tmp;
|
| return inner->filterBounds(src, ctm, &tmp, direction) &&
|
|
|