diff options
Diffstat (limited to 'experimental/svg/model/SkSVGAttribute.h')
-rw-r--r-- | experimental/svg/model/SkSVGAttribute.h | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/experimental/svg/model/SkSVGAttribute.h b/experimental/svg/model/SkSVGAttribute.h index 1d7c96eb22..4ac595d526 100644 --- a/experimental/svg/model/SkSVGAttribute.h +++ b/experimental/svg/model/SkSVGAttribute.h @@ -16,10 +16,15 @@ class SkSVGRenderContext; enum class SkSVGAttribute { kD, kFill, + kFillOpacity, kHeight, kRx, kRy, kStroke, + kStrokeOpacity, + kStrokeLineCap, + kStrokeLineJoin, + kStrokeWidth, kTransform, kViewBox, kWidth, @@ -29,22 +34,19 @@ enum class SkSVGAttribute { kUnknown, }; -class SkSVGPresentationAttributes { -public: - SkSVGPresentationAttributes(); +struct SkSVGPresentationAttributes { + static SkSVGPresentationAttributes MakeInitial(); - void setFill(const SkSVGColorType&); - void setStroke(const SkSVGColorType&); + // TODO: SkTLazy adds an extra ptr per attribute; refactor to reduce overhead. - void applyTo(SkSVGRenderContext*) const; + SkTLazy<SkSVGPaint> fFill; + SkTLazy<SkSVGNumberType> fFillOpacity; -private: - // Color only for now. - SkSVGColorType fFill; - SkSVGColorType fStroke; - - unsigned fFillIsSet : 1; - unsigned fStrokeIsSet : 1; + SkTLazy<SkSVGPaint> fStroke; + SkTLazy<SkSVGLineCap> fStrokeLineCap; + SkTLazy<SkSVGLineJoin> fStrokeLineJoin; + SkTLazy<SkSVGNumberType> fStrokeOpacity; + SkTLazy<SkSVGLength> fStrokeWidth; }; #endif // SkSVGAttribute_DEFINED |