Index: src/core/SkColor.cpp |
diff --git a/src/core/SkColor.cpp b/src/core/SkColor.cpp |
index c9f4a1433dfd9a856c5d7f6bed4725147e0bde89..1794cd7d909c68a23f102d25cfe9e4c73ed0ed2f 100644 |
--- a/src/core/SkColor.cpp |
+++ b/src/core/SkColor.cpp |
@@ -104,9 +104,10 @@ SkColor SkHSVToColor(U8CPU a, const SkScalar hsv[3]) { |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
#include "SkNx.h" |
-SkColor4f SkColor4f::Pin(float a, float r, float g, float b) { |
- SkColor4f c4; |
- Sk4f::Min(Sk4f::Max(Sk4f(a, r, g, b), Sk4f(0)), Sk4f(1)).store(c4.vec()); |
+SkPM4f SkPM4f::FromPMColor(SkPMColor c) { |
+ Sk4f value = SkNx_cast<float>(Sk4b::Load((const uint8_t*)&c)); |
+ SkPM4f c4; |
+ (value * Sk4f(1.0f / 255)).store(c4.fVec); |
return c4; |
} |
@@ -117,6 +118,12 @@ SkColor4f SkColor4f::FromColor(SkColor c) { |
return c4; |
} |
+SkColor4f SkColor4f::Pin(float a, float r, float g, float b) { |
+ SkColor4f c4; |
+ Sk4f::Min(Sk4f::Max(Sk4f(a, r, g, b), Sk4f(0)), Sk4f(1)).store(c4.vec()); |
+ return c4; |
+} |
+ |
SkPM4f SkColor4f::premul() const { |
auto src = Sk4f::Load(this->pin().vec()); |
float srcAlpha = src.kth<0>(); // need the pinned version of our alpha |