| Index: include/gpu/GrColor.h | 
| diff --git a/include/gpu/GrColor.h b/include/gpu/GrColor.h | 
| index 860d18da2ffa769b38385e64f011148ee39d1949..43bfd8dc11e0aa104d83c4c998efc4e50909f202 100644 | 
| --- a/include/gpu/GrColor.h | 
| +++ b/include/gpu/GrColor.h | 
| @@ -41,8 +41,7 @@ typedef uint32_t GrColor; | 
| /** | 
| *  Pack 4 components (RGBA) into a GrColor int | 
| */ | 
| -static inline GrColor GrColorPackRGBA(unsigned r, unsigned g, | 
| -                                      unsigned b, unsigned a) { | 
| +static inline GrColor GrColorPackRGBA(unsigned r, unsigned g, unsigned b, unsigned a) { | 
| SkASSERT((uint8_t)r == r); | 
| SkASSERT((uint8_t)g == g); | 
| SkASSERT((uint8_t)b == b); | 
| @@ -53,6 +52,17 @@ static inline GrColor GrColorPackRGBA(unsigned r, unsigned g, | 
| (a << GrColor_SHIFT_A); | 
| } | 
|  | 
| +/** | 
| + *  Packs a color with an alpha channel replicated across all four channels. | 
| + */ | 
| +static inline GrColor GrColorPackA4(unsigned a) { | 
| +    SkASSERT((uint8_t)a == a); | 
| +    return  (a << GrColor_SHIFT_R) | | 
| +            (a << GrColor_SHIFT_G) | | 
| +            (a << GrColor_SHIFT_B) | | 
| +            (a << GrColor_SHIFT_A); | 
| +} | 
| + | 
| // extract a component (byte) from a GrColor int | 
|  | 
| #define GrColorUnpackR(color)   (((color) >> GrColor_SHIFT_R) & 0xFF) | 
|  |