| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2010 Google Inc. | 3 * Copyright 2010 Google Inc. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 | 9 |
| 10 | 10 |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 162 SkColor colorUPM = SkUnPreMultiply::PMColorToColor(colorPM); | 162 SkColor colorUPM = SkUnPreMultiply::PMColorToColor(colorPM); |
| 163 | 163 |
| 164 r = SkColorGetR(colorUPM); | 164 r = SkColorGetR(colorUPM); |
| 165 g = SkColorGetG(colorUPM); | 165 g = SkColorGetG(colorUPM); |
| 166 b = SkColorGetB(colorUPM); | 166 b = SkColorGetB(colorUPM); |
| 167 a = SkColorGetA(colorUPM); | 167 a = SkColorGetA(colorUPM); |
| 168 | 168 |
| 169 return GrColorPackRGBA(r, g, b, a); | 169 return GrColorPackRGBA(r, g, b, a); |
| 170 } | 170 } |
| 171 | 171 |
| 172 |
| 173 /** |
| 174 * Similarly, GrColor4f is 4 floats for R, G, B, A, in that order. And like GrCol
or, whether |
| 175 * the color is premultiplied or not depends on the context. |
| 176 */ |
| 177 struct GrColor4f { |
| 178 float fRGBA[4]; |
| 179 |
| 180 GrColor4f() {} |
| 181 GrColor4f(float r, float g, float b, float a) { |
| 182 fRGBA[0] = r; |
| 183 fRGBA[1] = g; |
| 184 fRGBA[2] = b; |
| 185 fRGBA[3] = a; |
| 186 } |
| 187 |
| 188 static GrColor4f FromGrColor(GrColor color) { |
| 189 GrColor4f result; |
| 190 GrColorToRGBAFloat(color, result.fRGBA); |
| 191 return result; |
| 192 } |
| 193 |
| 194 static GrColor4f FromSkColor4f(const SkColor4f& color) { |
| 195 return GrColor4f(color.fR, color.fG, color.fB, color.fA); |
| 196 } |
| 197 |
| 198 GrColor toGrColor() const { |
| 199 return GrColorPackRGBA( |
| 200 SkTPin<unsigned>(static_cast<unsigned>(fRGBA[0] * 255.0f + 0.5f), 0,
255), |
| 201 SkTPin<unsigned>(static_cast<unsigned>(fRGBA[1] * 255.0f + 0.5f), 0,
255), |
| 202 SkTPin<unsigned>(static_cast<unsigned>(fRGBA[2] * 255.0f + 0.5f), 0,
255), |
| 203 SkTPin<unsigned>(static_cast<unsigned>(fRGBA[3] * 255.0f + 0.5f), 0,
255)); |
| 204 } |
| 205 |
| 206 SkColor4f toSkColor4f() const { |
| 207 return SkColor4f{ fRGBA[3], fRGBA[0], fRGBA[1], fRGBA[2] }; |
| 208 } |
| 209 |
| 210 GrColor4f opaque() const { |
| 211 return GrColor4f(fRGBA[0], fRGBA[1], fRGBA[2], 1.0f); |
| 212 } |
| 213 |
| 214 GrColor4f premul() const { |
| 215 float a = fRGBA[3]; |
| 216 return GrColor4f(fRGBA[0] * a, fRGBA[1] * a, fRGBA[2] * a, a); |
| 217 } |
| 218 }; |
| 219 |
| 172 /** | 220 /** |
| 173 * Flags used for bitfields of color components. They are defined so that the bi
t order reflects the | 221 * Flags used for bitfields of color components. They are defined so that the bi
t order reflects the |
| 174 * GrColor shift order. | 222 * GrColor shift order. |
| 175 */ | 223 */ |
| 176 enum GrColorComponentFlags { | 224 enum GrColorComponentFlags { |
| 177 kR_GrColorComponentFlag = 1 << (GrColor_SHIFT_R / 8), | 225 kR_GrColorComponentFlag = 1 << (GrColor_SHIFT_R / 8), |
| 178 kG_GrColorComponentFlag = 1 << (GrColor_SHIFT_G / 8), | 226 kG_GrColorComponentFlag = 1 << (GrColor_SHIFT_G / 8), |
| 179 kB_GrColorComponentFlag = 1 << (GrColor_SHIFT_B / 8), | 227 kB_GrColorComponentFlag = 1 << (GrColor_SHIFT_B / 8), |
| 180 kA_GrColorComponentFlag = 1 << (GrColor_SHIFT_A / 8), | 228 kA_GrColorComponentFlag = 1 << (GrColor_SHIFT_A / 8), |
| 181 | 229 |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 GR_STATIC_ASSERT(10 == kLATC_GrPixelConfig); | 289 GR_STATIC_ASSERT(10 == kLATC_GrPixelConfig); |
| 242 GR_STATIC_ASSERT(11 == kR11_EAC_GrPixelConfig); | 290 GR_STATIC_ASSERT(11 == kR11_EAC_GrPixelConfig); |
| 243 GR_STATIC_ASSERT(12 == kASTC_12x12_GrPixelConfig); | 291 GR_STATIC_ASSERT(12 == kASTC_12x12_GrPixelConfig); |
| 244 GR_STATIC_ASSERT(13 == kRGBA_float_GrPixelConfig); | 292 GR_STATIC_ASSERT(13 == kRGBA_float_GrPixelConfig); |
| 245 GR_STATIC_ASSERT(14 == kAlpha_half_GrPixelConfig); | 293 GR_STATIC_ASSERT(14 == kAlpha_half_GrPixelConfig); |
| 246 GR_STATIC_ASSERT(15 == kRGBA_half_GrPixelConfig); | 294 GR_STATIC_ASSERT(15 == kRGBA_half_GrPixelConfig); |
| 247 GR_STATIC_ASSERT(SK_ARRAY_COUNT(kFlags) == kGrPixelConfigCnt); | 295 GR_STATIC_ASSERT(SK_ARRAY_COUNT(kFlags) == kGrPixelConfigCnt); |
| 248 } | 296 } |
| 249 | 297 |
| 250 #endif | 298 #endif |
| OLD | NEW |