17 SkDebugf(
"cannot append child nodes to this element.\n");
20bool SkSVGUse::parseAndSetAttribute(
const char* n,
const char* v) {
22 this->setX(SkSVGAttributeParser::parse<SkSVGLength>(
"x", n, v)) ||
23 this->setY(SkSVGAttributeParser::parse<SkSVGLength>(
"y", n, v)) ||
24 this->setHref(SkSVGAttributeParser::parse<SkSVGIRI>(
"xlink:href", n, v));
32 if (fX.value() || fY.value()) {
58 return ref->asPath(ctx);
void SK_SPI SkDebugf(const char format[],...) SK_PRINTF_LIKE(1
#define INHERITED(method,...)
void translate(SkScalar dx, SkScalar dy)
SkScalar resolve(const SkSVGLength &, LengthType) const
virtual bool parseAndSetAttribute(const char *name, const char *value)
BorrowedNode findNodeById(const SkSVGIRI &) const
SkCanvas * canvas() const
const SkSVGLengthContext & lengthContext() const
void onRender(const SkSVGRenderContext &) const override
SkRect onObjectBoundingBox(const SkSVGRenderContext &) const override
SkPath onAsPath(const SkSVGRenderContext &) const override
bool onPrepareToRender(SkSVGRenderContext *) const override
void appendChild(sk_sp< SkSVGNode >) override
Optional< SkRect > bounds
static constexpr SkRect MakeEmpty()