/* * Copyright 2013 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "SkBitmap.h" #include "SkComposeImageFilter.h" #include "SkReadBuffer.h" #include "SkWriteBuffer.h" SkComposeImageFilter::~SkComposeImageFilter() { } bool SkComposeImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& src, const Context& ctx, SkBitmap* result, SkIPoint* offset) const { SkImageFilter* outer = getInput(0); SkImageFilter* inner = getInput(1); SkBitmap tmp; return inner->filterImage(proxy, src, ctx, &tmp, offset) && outer->filterImage(proxy, tmp, ctx, result, offset); } bool SkComposeImageFilter::onFilterBounds(const SkIRect& src, const SkMatrix& ctm, SkIRect* dst) const { SkImageFilter* outer = getInput(0); SkImageFilter* inner = getInput(1); SkIRect tmp; return inner->filterBounds(src, ctm, &tmp) && outer->filterBounds(tmp, ctm, dst); } SkFlattenable* SkComposeImageFilter::CreateProc(SkReadBuffer& buffer) { SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 2); return SkComposeImageFilter::Create(common.getInput(0), common.getInput(1)); } #ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING SkComposeImageFilter::SkComposeImageFilter(SkReadBuffer& buffer) : INHERITED(2, buffer) { } #endif