Chromium Code Reviews| Index: src/core/SkColor.cpp |
| diff --git a/src/core/SkColor.cpp b/src/core/SkColor.cpp |
| index a21f0192398f95ba3c4256a41c0d2ff47da4ed64..a80a78597a83fd7e701aad89c3aff39cdf2434c9 100644 |
| --- a/src/core/SkColor.cpp |
| +++ b/src/core/SkColor.cpp |
| @@ -100,3 +100,27 @@ SkColor SkHSVToColor(U8CPU a, const SkScalar hsv[3]) { |
| } |
| return SkColorSetARGB(a, r, g, b); |
| } |
| + |
| +#include "SkMathPriv.h" |
| + |
| +SkColor4f SkColor4f::Normalize(float a, float r, float g, float b) { |
|
mtklein
2016/01/21 19:28:30
Pin? (Also, SkNx this?)
|
| + return { SkPinToUnitFloat(a), SkPinToUnitFloat(r), SkPinToUnitFloat(g), SkPinToUnitFloat(b) }; |
| +} |
| + |
| +SkColor4f SkColor4f::FromColor(SkColor c) { |
|
mtklein
2016/01/21 19:28:30
Something like,
#include "SkNx.h"
SkColor4f SkCo
|
| + const float kOneOver255 = 1.0f / 255; |
| + return { |
| + SkColorGetA(c) * kOneOver255, SkColorGetR(c) * kOneOver255, |
| + SkColorGetG(c) * kOneOver255, SkColorGetB(c) * kOneOver255 |
| + }; |
| +} |
| + |
| +SkPM4f SkColor4f::premul() const { |
| + SkColor4f src = this->normalize(); |
| + SkPM4f dst; |
| + dst.fVec[SK_A32_SHIFT/8] = src.fA; |
| + dst.fVec[SK_R32_SHIFT/8] = src.fR; |
| + dst.fVec[SK_G32_SHIFT/8] = src.fG; |
| + dst.fVec[SK_B32_SHIFT/8] = src.fB; |
| + return dst; |
| +} |