blob: 02200117fb3c8d8a8adb55624ae46c67ca2c8abd [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#ifndef SkComposeImageFilter_DEFINED
9#define SkComposeImageFilter_DEFINED
10
11#include "SkImageFilter.h"
12
13class SK_API SkComposeImageFilter : public SkImageFilter {
14public:
robertphillips225db442016-04-17 14:27:05 -070015 static sk_sp<SkImageFilter> Make(sk_sp<SkImageFilter> outer, sk_sp<SkImageFilter> inner);
16
senorblancoe5e79842016-03-21 14:51:59 -070017 SkRect computeFastBounds(const SkRect& src) const override;
commit-bot@chromium.orgcac5fd52014-03-10 10:51:58 +000018
robertphillipsf3f5bad2014-12-19 13:49:15 -080019 SK_TO_STRING_OVERRIDE()
commit-bot@chromium.org1c4c9ef2013-08-07 00:07:51 +000020 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposeImageFilter)
21
22protected:
robertphillips491fb172016-03-30 12:32:58 -070023 explicit SkComposeImageFilter(sk_sp<SkImageFilter> inputs[2]) : INHERITED(inputs, 2, nullptr) {
24 SkASSERT(inputs[0].get());
25 SkASSERT(inputs[1].get());
reed9fa60da2014-08-21 07:59:51 -070026 }
robertphillips2302de92016-03-24 07:26:32 -070027 sk_sp<SkSpecialImage> onFilterImage(SkSpecialImage* source, const Context&,
28 SkIPoint* offset) const override;
Matt Sarett6d72ed92017-04-10 16:35:33 -040029 sk_sp<SkImageFilter> onMakeColorSpace(SkColorSpaceXformer*) const override;
senorblancoe5e79842016-03-21 14:51:59 -070030 SkIRect onFilterBounds(const SkIRect&, const SkMatrix&, MapDirection) const override;
reed96a04f32016-04-25 09:25:15 -070031 bool onCanHandleComplexCTM() const override { return true; }
commit-bot@chromium.org1c4c9ef2013-08-07 00:07:51 +000032
commit-bot@chromium.org1c4c9ef2013-08-07 00:07:51 +000033private:
34 typedef SkImageFilter INHERITED;
35};
36
37#endif