Index: experimental/svg/model/SkSVGTypes.h |
diff --git a/experimental/svg/model/SkSVGTypes.h b/experimental/svg/model/SkSVGTypes.h |
index 6d34d9943ac11fd9f3245cce54290782ea098194..ab07d7b16c4a4f75ca04060feea2c3563318b573 100644 |
--- a/experimental/svg/model/SkSVGTypes.h |
+++ b/experimental/svg/model/SkSVGTypes.h |
@@ -9,25 +9,30 @@ |
#define SkSVGTypes_DEFINED |
#include "SkColor.h" |
+#include "SkRect.h" |
#include "SkScalar.h" |
#include "SkTypes.h" |
-class SkSVGNumber { |
+template <typename T> |
+class SkSVGPrimitiveTypeWrapper { |
public: |
- constexpr SkSVGNumber() : fValue(0) {} |
- explicit constexpr SkSVGNumber(SkScalar v) : fValue(v) {} |
- SkSVGNumber(const SkSVGNumber&) = default; |
- SkSVGNumber& operator=(const SkSVGNumber&) = default; |
+ SkSVGPrimitiveTypeWrapper() = default; |
+ explicit constexpr SkSVGPrimitiveTypeWrapper(T v) : fValue(v) {} |
+ SkSVGPrimitiveTypeWrapper(const SkSVGPrimitiveTypeWrapper&) = default; |
+ SkSVGPrimitiveTypeWrapper& operator=(const SkSVGPrimitiveTypeWrapper&) = default; |
- const SkScalar& value() const { return fValue; } |
- |
- operator const SkScalar&() const { return fValue; } |
+ const T& value() const { return fValue; } |
+ operator const T&() const { return fValue; } |
private: |
- SkScalar fValue; |
+ T fValue; |
}; |
+using SkSVGColorType = SkSVGPrimitiveTypeWrapper<SkColor >; |
+using SkSVGNumberType = SkSVGPrimitiveTypeWrapper<SkScalar>; |
+using SkSVGViewBoxType = SkSVGPrimitiveTypeWrapper<SkRect >; |
+ |
class SkSVGLength { |
public: |
enum class Unit { |
@@ -58,15 +63,4 @@ private: |
Unit fUnit; |
}; |
-class SkSVGColor { |
-public: |
- constexpr SkSVGColor() : fValue(SK_ColorBLACK) {} |
- explicit constexpr SkSVGColor(SkColor c) : fValue(c) {} |
- |
- operator const SkColor&() const { return fValue; } |
- |
-private: |
- SkColor fValue; |
-}; |
- |
#endif // SkSVGTypes_DEFINED |