| Index: src/core/SkPMFloat.h
|
| diff --git a/src/core/SkPMFloat.h b/src/core/SkPMFloat.h
|
| index 444cb78fc8c77d516ee5ccda2cf1aacbb2ba888a..2e06ea93e6e9ed1d968f358e57b3ead37e55e833 100644
|
| --- a/src/core/SkPMFloat.h
|
| +++ b/src/core/SkPMFloat.h
|
| @@ -12,6 +12,12 @@ public:
|
| static SkPMFloat FromPMColor(SkPMColor c) { return SkPMFloat(c); }
|
| static SkPMFloat FromARGB(float a, float r, float g, float b) { return SkPMFloat(a,r,g,b); }
|
|
|
| + // May be more efficient than one at a time. No special alignment assumed for SkPMColors.
|
| + static void From4PMColors(SkPMFloat floats[4], const SkPMColor colors[4]) {
|
| + // TODO: specialize
|
| + for (int i = 0; i < 4; i++) { floats[i] = FromPMColor(colors[i]); }
|
| + }
|
| +
|
| explicit SkPMFloat(SkPMColor);
|
| SkPMFloat(float a, float r, float g, float b) {
|
| // TODO: faster when specialized?
|
| @@ -44,6 +50,16 @@ public:
|
| SkPMColor get() const; // May SkASSERT(this->isValid()). Some implementations may clamp.
|
| SkPMColor clamped() const; // Will clamp all values to [0, 255]. Then may assert isValid().
|
|
|
| + // 4-at-a-time versions of get() and clamped(). Like From4PMColors(), no alignment assumed.
|
| + static void To4PMColors(SkPMColor colors[4], const SkPMFloat floats[4]) {
|
| + // TODO: specialize
|
| + for (int i = 0; i < 4; i++) { colors[i] = floats[i].get(); }
|
| + }
|
| + static void ClampTo4PMColors(SkPMColor colors[4], const SkPMFloat floats[4]) {
|
| + // TODO: specialize
|
| + for (int i = 0; i < 4; i++) { colors[i] = floats[i].clamped(); }
|
| + }
|
| +
|
| bool isValid() const {
|
| return this->a() >= 0 && this->a() <= 255
|
| && this->r() >= 0 && this->r() <= this->a()
|
|
|