2 * Copyright 2020 Google Inc.
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
8 #ifndef SkSVGFeDisplacementMap_DEFINED
9 #define SkSVGFeDisplacementMap_DEFINED
11 #include "modules/svg/include/SkSVGFe.h"
12 #include "modules/svg/include/SkSVGTypes.h"
14 class SkSVGFeDisplacementMap : public SkSVGFe {
16 using ChannelSelector = SkColorChannel;
18 static sk_sp<SkSVGFeDisplacementMap> Make() {
19 return sk_sp<SkSVGFeDisplacementMap>(new SkSVGFeDisplacementMap());
22 SkSVGColorspace resolveColorspace(const SkSVGRenderContext&,
23 const SkSVGFilterContext&) const final;
25 SVG_ATTR(In2 , SkSVGFeInputType, SkSVGFeInputType())
26 SVG_ATTR(XChannelSelector, ChannelSelector , ChannelSelector::kA)
27 SVG_ATTR(YChannelSelector, ChannelSelector , ChannelSelector::kA)
28 SVG_ATTR(Scale , SkSVGNumberType , SkSVGNumberType(0))
31 sk_sp<SkImageFilter> onMakeImageFilter(const SkSVGRenderContext&,
32 const SkSVGFilterContext&) const override;
34 std::vector<SkSVGFeInputType> getInputs() const override {
35 return {this->getIn(), this->getIn2()};
38 bool parseAndSetAttribute(const char*, const char*) override;
41 SkSVGFeDisplacementMap() : INHERITED(SkSVGTag::kFeDisplacementMap) {}
43 using INHERITED = SkSVGFe;
46 #endif // SkSVGFeDisplacementMap_DEFINED