blob: 6ad6525fbd2db29cc104344532266c4b10cbacfb [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:
commit-bot@chromium.org1c4c9ef2013-08-07 00:07:51 +000015 virtual ~SkComposeImageFilter();
16
reed9fa60da2014-08-21 07:59:51 -070017 static SkImageFilter* Create(SkImageFilter* outer, SkImageFilter* inner) {
18 if (NULL == outer) {
19 return SkSafeRef(inner);
20 }
21 if (NULL == inner) {
22 return SkRef(outer);
23 }
senorblanco9ea3d572014-07-08 09:16:22 -070024 SkImageFilter* inputs[2] = { outer, inner };
halcanary385fe4d2015-08-26 13:07:48 -070025 return new SkComposeImageFilter(inputs);
commit-bot@chromium.orgcac5fd52014-03-10 10:51:58 +000026 }
mtklein36352bf2015-03-25 18:17:31 -070027 void computeFastBounds(const SkRect& src, SkRect* dst) const override;
commit-bot@chromium.orgcac5fd52014-03-10 10:51:58 +000028
robertphillipsf3f5bad2014-12-19 13:49:15 -080029 SK_TO_STRING_OVERRIDE()
commit-bot@chromium.org1c4c9ef2013-08-07 00:07:51 +000030 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposeImageFilter)
31
32protected:
reed9fa60da2014-08-21 07:59:51 -070033 explicit SkComposeImageFilter(SkImageFilter* inputs[2]) : INHERITED(2, inputs) {
34 SkASSERT(inputs[0]);
35 SkASSERT(inputs[1]);
36 }
robertphillips48e78462016-02-17 13:57:16 -080037 bool onFilterImageDeprecated(Proxy*, const SkBitmap& src, const Context&,
38 SkBitmap* result, SkIPoint* loc) const override;
senorblancod8ff5b32016-01-28 08:23:02 -080039 bool onFilterBounds(const SkIRect&, const SkMatrix&, SkIRect*, MapDirection) const override;
commit-bot@chromium.org1c4c9ef2013-08-07 00:07:51 +000040
commit-bot@chromium.org1c4c9ef2013-08-07 00:07:51 +000041private:
42 typedef SkImageFilter INHERITED;
43};
44
45#endif