| 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()
 | 
| 
 |