Skia
2D Graphics Library
SkSVGNode.h File Reference
Include dependency graph for SkSVGNode.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  SkSVGNode
 

Macros

#define SVG_PRES_ATTR(attr_name, attr_type, attr_inherited)
 
#define _SVG_ATTR_SETTERS(attr_name, attr_type, attr_default, set_cp, set_mv)
 
#define SVG_ATTR(attr_name, attr_type, attr_default)
 
#define SVG_OPTIONAL_ATTR(attr_name, attr_type)
 

Enumerations

enum class  SkSVGTag {
  kCircle , kClipPath , kDefs , kEllipse ,
  kFeBlend , kFeColorMatrix , kFeComposite , kFeDiffuseLighting ,
  kFeDisplacementMap , kFeDistantLight , kFeFlood , kFeGaussianBlur ,
  kFeImage , kFeMorphology , kFeOffset , kFePointLight ,
  kFeSpecularLighting , kFeSpotLight , kFeTurbulence , kFilter ,
  kG , kImage , kLine , kLinearGradient ,
  kMask , kPath , kPattern , kPolygon ,
  kPolyline , kRadialGradient , kRect , kStop ,
  kSvg , kText , kTextLiteral , kTextPath ,
  kTSpan , kUse
}
 

Macro Definition Documentation

◆ _SVG_ATTR_SETTERS

#define _SVG_ATTR_SETTERS (   attr_name,
  attr_type,
  attr_default,
  set_cp,
  set_mv 
)
Value:
private: \
bool set##attr_name( \
if (pr.isValid()) { this->set##attr_name(*pr); } \
return pr.isValid(); \
} \
bool set##attr_name( \
if (pr.isValid()) { this->set##attr_name(std::move(*pr)); } \
return pr.isValid(); \
} \
public: \
void set##attr_name(const attr_type& a) { set_cp(a); } \
void set##attr_name(attr_type&& a) { set_mv(std::move(a)); }
SkTLazy< T > ParseResult
Definition: SkSVGAttributeParser.h:29

◆ SVG_ATTR

#define SVG_ATTR (   attr_name,
  attr_type,
  attr_default 
)
Value:
private: \
attr_type f##attr_name = attr_default; \
public: \
const attr_type& get##attr_name() const { return f##attr_name; } \
_SVG_ATTR_SETTERS( \
attr_name, attr_type, attr_default, \
[this](const attr_type& a) { this->f##attr_name = a; }, \
[this](attr_type&& a) { this->f##attr_name = std::move(a); })

◆ SVG_OPTIONAL_ATTR

#define SVG_OPTIONAL_ATTR (   attr_name,
  attr_type 
)
Value:
private: \
SkTLazy<attr_type> f##attr_name; \
public: \
const SkTLazy<attr_type>& get##attr_name() const { return f##attr_name; } \
_SVG_ATTR_SETTERS( \
attr_name, attr_type, attr_default, \
[this](const attr_type& a) { this->f##attr_name.set(a); }, \
[this](attr_type&& a) { this->f##attr_name.set(std::move(a)); })

◆ SVG_PRES_ATTR

#define SVG_PRES_ATTR (   attr_name,
  attr_type,
  attr_inherited 
)
Value:
private: \
bool set##attr_name(SkSVGAttributeParser::ParseResult< \
if (pr.isValid()) { this->set##attr_name(std::move(*pr)); } \
return pr.isValid(); \
} \
\
public: \
const SkSVGProperty<attr_type, attr_inherited>& get##attr_name() const { \
return fPresentationAttributes.f##attr_name; \
} \
void set##attr_name(const SkSVGProperty<attr_type, attr_inherited>& v) { \
auto* dest = &fPresentationAttributes.f##attr_name; \
if (!dest->isInheritable() || v.isValue()) { \
/* TODO: If dest is not inheritable, handle v == "inherit" */ \
*dest = v; \
} else { \
} \
} \
void set##attr_name(SkSVGProperty<attr_type, attr_inherited>&& v) { \
auto* dest = &fPresentationAttributes.f##attr_name; \
if (!dest->isInheritable() || v.isValue()) { \
/* TODO: If dest is not inheritable, handle v == "inherit" */ \
*dest = std::move(v); \
} else { \
} \
}
Definition: SkSVGTypes.h:40
bool isValue() const
Definition: SkSVGTypes.h:64
void set(SkSVGPropertyState state)
Definition: SkSVGTypes.h:70

Enumeration Type Documentation

◆ SkSVGTag

enum SkSVGTag
strong
Enumerator
kCircle 
kClipPath 
kDefs 
kEllipse 
kFeBlend 
kFeColorMatrix 
kFeComposite 
kFeDiffuseLighting 
kFeDisplacementMap 
kFeDistantLight 
kFeFlood 
kFeGaussianBlur 
kFeImage 
kFeMorphology 
kFeOffset 
kFePointLight 
kFeSpecularLighting 
kFeSpotLight 
kFeTurbulence 
kFilter 
kG 
kImage 
kLine 
kLinearGradient 
kMask 
kPath 
kPattern 
kPolygon 
kPolyline 
kRadialGradient 
kRect 
kStop 
kSvg 
kText 
kTextLiteral 
kTextPath 
kTSpan 
kUse