1 /* 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 SkSVGFeBlend_DEFINED 9 #define SkSVGFeBlend_DEFINED 10 11 #include "modules/svg/include/SkSVGFe.h" 12 #include "modules/svg/include/SkSVGTypes.h" 13 14 class SkSVGFeBlend : public SkSVGFe { 15 public: 16 enum class Mode { 17 kNormal, 18 kMultiply, 19 kScreen, 20 kDarken, 21 kLighten, 22 }; 23 Make()24 static sk_sp<SkSVGFeBlend> Make() { return sk_sp<SkSVGFeBlend>(new SkSVGFeBlend()); } 25 26 SVG_ATTR(Mode, Mode, Mode::kNormal) 27 SVG_ATTR(In2, SkSVGFeInputType, SkSVGFeInputType()) 28 29 protected: 30 sk_sp<SkImageFilter> onMakeImageFilter(const SkSVGRenderContext&, 31 const SkSVGFilterContext&) const override; 32 getInputs()33 std::vector<SkSVGFeInputType> getInputs() const override { 34 return {this->getIn(), this->getIn2()}; 35 } 36 37 bool parseAndSetAttribute(const char*, const char*) override; 38 39 private: SkSVGFeBlend()40 SkSVGFeBlend() : INHERITED(SkSVGTag::kFeBlend) {} 41 42 using INHERITED = SkSVGFe; 43 }; 44 45 #endif // SkSVGFeBlend_DEFINED 46