blob: c0556749ace1572dc37578655cd42616e016913f [file] [log] [blame]
commit-bot@chromium.org1c4c9ef2013-08-07 00:07:51 +00001/*
2 * Copyright 2013 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#include "SkBitmap.h"
9#include "SkComposeImageFilter.h"
commit-bot@chromium.org8b0e8ac2014-01-30 18:58:24 +000010#include "SkReadBuffer.h"
11#include "SkWriteBuffer.h"
commit-bot@chromium.org1c4c9ef2013-08-07 00:07:51 +000012
13SkComposeImageFilter::~SkComposeImageFilter() {
14}
15
16bool SkComposeImageFilter::onFilterImage(Proxy* proxy,
17 const SkBitmap& src,
senorblanco@chromium.org4cb543d2014-03-14 15:44:01 +000018 const Context& ctx,
commit-bot@chromium.org1c4c9ef2013-08-07 00:07:51 +000019 SkBitmap* result,
commit-bot@chromium.orgae761f72014-02-05 22:32:02 +000020 SkIPoint* offset) const {
commit-bot@chromium.org1c4c9ef2013-08-07 00:07:51 +000021 SkImageFilter* outer = getInput(0);
22 SkImageFilter* inner = getInput(1);
23
commit-bot@chromium.org1c4c9ef2013-08-07 00:07:51 +000024 SkBitmap tmp;
senorblanco@chromium.org4cb543d2014-03-14 15:44:01 +000025 return inner->filterImage(proxy, src, ctx, &tmp, offset) &&
26 outer->filterImage(proxy, tmp, ctx, result, offset);
commit-bot@chromium.org1c4c9ef2013-08-07 00:07:51 +000027}
28
29bool SkComposeImageFilter::onFilterBounds(const SkIRect& src,
30 const SkMatrix& ctm,
senorblanco@chromium.orgc4b12f12014-02-05 17:51:22 +000031 SkIRect* dst) const {
commit-bot@chromium.org1c4c9ef2013-08-07 00:07:51 +000032 SkImageFilter* outer = getInput(0);
33 SkImageFilter* inner = getInput(1);
34
commit-bot@chromium.org1c4c9ef2013-08-07 00:07:51 +000035 SkIRect tmp;
reed9fa60da2014-08-21 07:59:51 -070036 return inner->filterBounds(src, ctm, &tmp) && outer->filterBounds(tmp, ctm, dst);
commit-bot@chromium.org1c4c9ef2013-08-07 00:07:51 +000037}
38
reed9fa60da2014-08-21 07:59:51 -070039SkFlattenable* SkComposeImageFilter::CreateProc(SkReadBuffer& buffer) {
40 SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 2);
41 return SkComposeImageFilter::Create(common.getInput(0), common.getInput(1));
42}
43
44#ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING
commit-bot@chromium.org8b0e8ac2014-01-30 18:58:24 +000045SkComposeImageFilter::SkComposeImageFilter(SkReadBuffer& buffer)
commit-bot@chromium.orgce33d602013-11-25 21:46:31 +000046 : INHERITED(2, buffer) {
commit-bot@chromium.org1c4c9ef2013-08-07 00:07:51 +000047}
reed9fa60da2014-08-21 07:59:51 -070048#endif