17 this->setGradientTransform(SkSVGAttributeParser::parse<SkSVGTransformType>(
19 this->setHref(SkSVGAttributeParser::parse<SkSVGIRI>(
"xlink:href",
name,
value)) ||
20 this->setSpreadMethod(
21 SkSVGAttributeParser::parse<SkSVGSpreadMethod>(
"spreadMethod",
name,
value)) ||
22 this->setGradientUnits(SkSVGAttributeParser::parse<SkSVGObjectBoundingBoxUnits>(
28 StopPositionArray*
pos,
29 StopColorArray* colors)
const {
38 const auto& stop =
static_cast<const SkSVGStop&
>(*child);
39 colors->push_back(this->resolveStopColor(ctx, stop));
46 if (
pos->empty() && !fHref.iri().isEmpty()) {
57 const auto& stopColor = stop.getStopColor();
58 const auto& stopOpacity = stop.getStopOpacity();
60 if (!stopColor.isValue() || !stopOpacity.isValue()) {
61 SkDebugf(
"unhandled: stop-color or stop-opacity has no value\n");
74 this->collectColorStops(ctx, &
pos, &colors);
88 const auto tileMode =
static_cast<SkTileMode>(fSpreadMethod.type());
103 static const struct {
112 bool parsedValue =
false;
113 for (
size_t i = 0; i < std::size(gSpreadInfo); ++i) {
114 if (this->parseExpectedStringToken(gSpreadInfo[i].
fName)) {
121 return parsedValue && this->parseEOSToken();
void SK_SPI SkDebugf(const char format[],...) SK_PRINTF_LIKE(1
static constexpr const T & SkTPin(const T &x, const T &lo, const T &hi)
static SkMatrix Scale(SkScalar sx, SkScalar sy)
static SkMatrix Translate(SkScalar dx, SkScalar dy)
bool parse(SkSVGIntegerType *v)
skia_private::STArray< 1, sk_sp< SkSVGNode >, true > fChildren
virtual sk_sp< SkShader > onMakeShader(const SkSVGRenderContext &, const SkColor4f *, const SkScalar *, int count, SkTileMode, const SkMatrix &localMatrix) const =0
bool onAsPaint(const SkSVGRenderContext &, SkPaint *) const final
bool parseAndSetAttribute(const char *, const char *) override
virtual bool parseAndSetAttribute(const char *name, const char *value)
SkSVGColorType resolveSvgColor(const SkSVGColor &) const
OBBTransform transformForCurrentOBB(SkSVGObjectBoundingBoxUnits) const
BorrowedNode findNodeById(const SkSVGIRI &) const
constexpr SkColor4f kBlack
PODArray< SkColor > colors
static SkRGBA4f FromColor(SkColor color)
static constexpr SkSize Make(SkScalar w, SkScalar h)