17 this->setOperator(SkSVGAttributeParser::parse<SkSVGFeMorphology::Operator>(
19 this->setRadius(SkSVGAttributeParser::parse<SkSVGFeMorphology::Radius>(
29 const auto r =
SkV2{fRadius.
fX, fRadius.
fY}
43 static constexpr std::tuple<const char*, SkSVGFeMorphology::Operator> gMap[] = {
48 return this->parseEnumMap(gMap, op) && this->parseEOSToken();
53 std::vector<SkSVGNumberType>
values;
54 if (!this->
parse(&values)) {
static sk_sp< SkImageFilter > Erode(SkScalar radiusX, SkScalar radiusY, sk_sp< SkImageFilter > input, const CropRect &cropRect={})
static sk_sp< SkImageFilter > Dilate(SkScalar radiusX, SkScalar radiusY, sk_sp< SkImageFilter > input, const CropRect &cropRect={})
bool parseAndSetAttribute(const char *, const char *) override
sk_sp< SkImageFilter > onMakeImageFilter(const SkSVGRenderContext &, const SkSVGFilterContext &) const override
SkRect resolveFilterSubregion(const SkSVGRenderContext &, const SkSVGFilterContext &) const
bool parseAndSetAttribute(const char *, const char *) override
virtual SkSVGColorspace resolveColorspace(const SkSVGRenderContext &, const SkSVGFilterContext &) const
sk_sp< SkImageFilter > resolveInput(const SkSVGRenderContext &, const SkSVGFeInputType &) const
const SkSVGObjectBoundingBoxUnits & primitiveUnits() const
OBBTransform transformForCurrentOBB(SkSVGObjectBoundingBoxUnits) const
DEF_SWITCHES_START aot vmservice shared library name
def parse(repo_root, recipes_cfg_path)