| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2006 The Android Open Source Project | 2 * Copyright 2006 The Android Open Source Project |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #ifndef SkColor_DEFINED | 8 #ifndef SkColor_DEFINED |
| 9 #define SkColor_DEFINED | 9 #define SkColor_DEFINED |
| 10 | 10 |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 153 /** Return a SkPMColor value from a SkColor value. This is done by multiplying t
he color | 153 /** Return a SkPMColor value from a SkColor value. This is done by multiplying t
he color |
| 154 components by the color's alpha, and by arranging the bytes in a configurati
on | 154 components by the color's alpha, and by arranging the bytes in a configurati
on |
| 155 dependent order, to match the format of kARGB32 bitmaps. | 155 dependent order, to match the format of kARGB32 bitmaps. |
| 156 */ | 156 */ |
| 157 SK_API SkPMColor SkPreMultiplyColor(SkColor c); | 157 SK_API SkPMColor SkPreMultiplyColor(SkColor c); |
| 158 | 158 |
| 159 /** Define a function pointer type for combining two premultiplied colors | 159 /** Define a function pointer type for combining two premultiplied colors |
| 160 */ | 160 */ |
| 161 typedef SkPMColor (*SkXfermodeProc)(SkPMColor src, SkPMColor dst); | 161 typedef SkPMColor (*SkXfermodeProc)(SkPMColor src, SkPMColor dst); |
| 162 | 162 |
| 163 ////////////////////////////////////////////////////////////////////////////////
/////////////////// | |
| 164 | |
| 165 /* | |
| 166 * The float values are 0...1 premultiplied | |
| 167 */ | |
| 168 struct SK_ATTRIBUTE(aligned(16)) SkPM4f { | |
| 169 float fVec[4]; | |
| 170 | |
| 171 float a() const { return fVec[SK_A32_SHIFT/8]; } | |
| 172 }; | |
| 173 | |
| 174 /* | |
| 175 * The float values are 0...1 unpremultiplied | |
| 176 */ | |
| 177 struct SkColor4f { | |
| 178 float fA; | |
| 179 float fR; | |
| 180 float fG; | |
| 181 float fB; | |
| 182 | |
| 183 bool operator==(const SkColor4f& other) const { | |
| 184 return fA == other.fA && fR == other.fR && fG == other.fG && fB == other
.fB; | |
| 185 } | |
| 186 bool operator!=(const SkColor4f& other) const { | |
| 187 return !(*this == other); | |
| 188 } | |
| 189 | |
| 190 const float* vec() const { return &fA; } | |
| 191 float* vec() { return &fA; } | |
| 192 | |
| 193 static SkColor4f Pin(float a, float r, float g, float b); | |
| 194 static SkColor4f FromColor(SkColor); | |
| 195 | |
| 196 SkColor4f pin() const { | |
| 197 return Pin(fA, fR, fG, fB); | |
| 198 } | |
| 199 | |
| 200 SkPM4f premul() const; | |
| 201 }; | |
| 202 | |
| 203 #endif | 163 #endif |
| OLD | NEW |