Flutter Engine
The Flutter Engine
SkSVGUse.h
Go to the documentation of this file.
1/*
2 * Copyright 2017 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 SkSVGUse_DEFINED
9#define SkSVGUse_DEFINED
10
13
14/**
15 * Implements support for <use> (reference) elements.
16 * (https://www.w3.org/TR/SVG11/struct.html#UseElement)
17 */
19public:
20 static sk_sp<SkSVGUse> Make() { return sk_sp<SkSVGUse>(new SkSVGUse()); }
21
22 void appendChild(sk_sp<SkSVGNode>) override;
23
26 SVG_ATTR(Href, SkSVGIRI , SkSVGIRI())
27
28protected:
29 bool onPrepareToRender(SkSVGRenderContext*) const override;
30 void onRender(const SkSVGRenderContext&) const override;
31 SkPath onAsPath(const SkSVGRenderContext&) const override;
32 SkRect onObjectBoundingBox(const SkSVGRenderContext&) const override;
33
34private:
35 SkSVGUse();
36
37 bool parseAndSetAttribute(const char*, const char*) override;
38
40};
41
42#endif // SkSVGUse_DEFINED
#define SK_API
Definition: SkAPI.h:35
#define INHERITED(method,...)
Definition: SkRecorder.cpp:128
#define SVG_ATTR(attr_name, attr_type, attr_default)
Definition: SkSVGNode.h:210
static const SkScalar Y
Definition: StrokeBench.cpp:55
static const SkScalar X
Definition: StrokeBench.cpp:54
Definition: SkPath.h:59
virtual void appendChild(sk_sp< SkSVGNode >)=0
static sk_sp< SkSVGUse > Make()
Definition: SkSVGUse.h:20