blob: ccc2d2d24ece2da7aaaa96c625d7392f482dc5a5 [file] [log] [blame]
Tyler Dennistondf208a32020-10-30 16:01:54 -04001/*
2 * Copyright 2020 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 SkSVGFe_DEFINED
9#define SkSVGFe_DEFINED
10
11#include "modules/svg/include/SkSVGHiddenContainer.h"
12
13class SkImageFilter;
14class SkSVGFilterContext;
15
16class SkSVGFe : public SkSVGHiddenContainer {
17public:
18 ~SkSVGFe() override = default;
19
Tyler Dennistondada9602020-11-03 10:04:25 -050020 static bool IsFilterEffect(const sk_sp<SkSVGNode>& node) {
21 return node->tag() == SkSVGTag::kFeTurbulence;
22 }
Tyler Dennistondf208a32020-10-30 16:01:54 -040023
24 sk_sp<SkImageFilter> makeImageFilter(const SkSVGRenderContext& ctx,
25 SkSVGFilterContext* fctx) const;
26
27protected:
28 explicit SkSVGFe(SkSVGTag t) : INHERITED(t) {}
29
30 virtual sk_sp<SkImageFilter> onMakeImageFilter(const SkSVGRenderContext&,
31 const SkSVGFilterContext&) const = 0;
32
33private:
34 using INHERITED = SkSVGHiddenContainer;
35};
36
37#endif // SkSVGFe_DEFINED