30 const std::vector<SkSVGFeInputType>&
inputs) {
31 for (
const auto& in :
inputs) {
67 for (
size_t i = 1;
i <
inputs.size();
i++) {
75 const SkRect boundaries = this->resolveBoundaries(ctx, fctx);
79 fY.isValid() ? boundaries.
fTop : defaultSubregion.
fTop,
80 fWidth.isValid() ? boundaries.
width() : defaultSubregion.
width(),
81 fHeight.isValid() ? boundaries.
height() : defaultSubregion.
height());
95 this->setIn(SkSVGAttributeParser::parse<SkSVGFeInputType>(
"in",
name,
value)) ||
96 this->setResult(SkSVGAttributeParser::parse<SkSVGStringType>(
"result",
name,
value)) ||
97 this->setX(SkSVGAttributeParser::parse<SkSVGLength>(
"x",
name,
value)) ||
98 this->setY(SkSVGAttributeParser::parse<SkSVGLength>(
"y",
name,
value)) ||
99 this->setWidth(SkSVGAttributeParser::parse<SkSVGLength>(
"width",
name,
value)) ||
100 this->setHeight(SkSVGAttributeParser::parse<SkSVGLength>(
"height",
name,
value));
104 static constexpr std::tuple<const char*, SkSVGFeInputType::Type> gTypeMap[] = {
115 bool parsedValue =
false;
116 if (this->parseEnumMap(gTypeMap, &t)) {
119 }
else if (
parse(&resultId)) {
124 return parsedValue && this->parseEOSToken();
static bool AnyIsStandardInput(const SkSVGFilterContext &fctx, const std::vector< SkSVGFeInputType > &inputs)
bool parse(SkSVGIntegerType *v)
SkRect resolveFilterSubregion(const SkSVGRenderContext &, const SkSVGFilterContext &) const
virtual std::vector< SkSVGFeInputType > getInputs() const =0
bool parseAndSetAttribute(const char *, const char *) override
virtual SkSVGColorspace resolveColorspace(const SkSVGRenderContext &, const SkSVGFilterContext &) const
sk_sp< SkImageFilter > makeImageFilter(const SkSVGRenderContext &ctx, const SkSVGFilterContext &fctx) const
void applyProperties(SkSVGRenderContext *) const
virtual sk_sp< SkImageFilter > onMakeImageFilter(const SkSVGRenderContext &, const SkSVGFilterContext &) const =0
const SkRect & filterEffectsRegion() const
bool previousResultIsSourceGraphic() const
const SkSVGObjectBoundingBoxUnits & primitiveUnits() const
const SkRect & filterPrimitiveSubregion(const SkSVGFeInputType &) const
virtual bool parseAndSetAttribute(const char *name, const char *value)
SkRect resolveOBBRect(const SkSVGLength &x, const SkSVGLength &y, const SkSVGLength &w, const SkSVGLength &h, SkSVGObjectBoundingBoxUnits) const
const SkSVGPresentationContext & presentationContext() const
DEF_SWITCHES_START aot vmservice shared library name
SkScalar fLeft
smaller x-axis bounds
static constexpr SkRect MakeXYWH(float x, float y, float w, float h)
constexpr float height() const
constexpr float width() const
void join(const SkRect &r)
SkScalar fTop
smaller y-axis bounds
SkSVGProperty< SkSVGColorspace, true > fColorInterpolationFilters
SkSVGPresentationAttributes fInherited