Chromium Code Reviews| 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>; |
|
robertphillips
2016/08/08 13:55:28
Is this going to initialize the SkRect as you want
f(malita)
2016/08/08 17:13:29
SkSVGViewBoxType attributes are safe because they'
|
| +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 |