Index: include/core/SkColor.h |
diff --git a/include/core/SkColor.h b/include/core/SkColor.h |
index 1ba1331c1a7261f3faaba32002dc113ac9ed0397..3f0e9dcd1f50b994118cdeb23ba511c586620e6c 100644 |
--- a/include/core/SkColor.h |
+++ b/include/core/SkColor.h |
@@ -160,4 +160,34 @@ SK_API SkPMColor SkPreMultiplyColor(SkColor c); |
*/ |
typedef SkPMColor (*SkXfermodeProc)(SkPMColor src, SkPMColor dst); |
+/////////////////////////////////////////////////////////////////////////////////////////////////// |
+ |
+/* |
+ * The float values are 0...1 premultiplied |
+ */ |
+struct SK_ATTRIBUTE(aligned(16)) SkPM4f { |
+ float fVec[4]; |
+ |
+ float a() const { return fVec[SK_A32_SHIFT/8]; } |
+}; |
+ |
+/* |
+ * The float values are 0...1 unpremultiplied |
+ */ |
+struct SkColor4f { |
+ float fA; |
+ float fR; |
+ float fG; |
+ float fB; |
+ |
+ static SkColor4f Normalize(float a, float r, float g, float b); |
+ static SkColor4f FromColor(SkColor); |
+ |
+ SkColor4f normalize() const { |
+ return Normalize(fA, fR, fG, fB); |
+ } |
+ |
+ SkPM4f premul() const; |
+}; |
+ |
#endif |