Index: experimental/svg/model/SkSVGAttribute.h |
diff --git a/experimental/svg/model/SkSVGAttribute.h b/experimental/svg/model/SkSVGAttribute.h |
index 1d7c96eb22fc54b1f881c6168734ca58e50856d6..4ac595d526b5a0cf431818ced0845a815840e874 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 |