Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 Google Inc. |
| 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 SkGradientShaderPriv_DEFINED | 8 #ifndef SkGradientShaderPriv_DEFINED |
| 9 #define SkGradientShaderPriv_DEFINED | 9 #define SkGradientShaderPriv_DEFINED |
| 10 | 10 |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 168 bool fDither; | 168 bool fDither; |
| 169 | 169 |
| 170 SkAutoTUnref<GradientShaderCache> fCache; | 170 SkAutoTUnref<GradientShaderCache> fCache; |
| 171 | 171 |
| 172 private: | 172 private: |
| 173 typedef SkShader::Context INHERITED; | 173 typedef SkShader::Context INHERITED; |
| 174 }; | 174 }; |
| 175 | 175 |
| 176 bool isOpaque() const override; | 176 bool isOpaque() const override; |
| 177 | 177 |
| 178 void getGradientTableBitmap(SkBitmap*) const; | 178 enum class GradientBitmapType : uint8_t { |
| 179 kLegacy = 0, | |
| 180 kSRGB = 1, | |
| 181 kHalfFloat = 2, | |
|
f(malita)
2016/09/21 02:51:35
nit: do we actually care about these values being
Brian Osman
2016/09/21 13:24:18
Nope. Fixed.
| |
| 182 }; | |
| 183 | |
| 184 void getGradientTableBitmap(SkBitmap*, GradientBitmapType bitmapType) const; | |
| 179 | 185 |
| 180 enum { | 186 enum { |
| 181 /// Seems like enough for visual accuracy. TODO: if pos[] deserves | 187 /// Seems like enough for visual accuracy. TODO: if pos[] deserves |
| 182 /// it, use a larger cache. | 188 /// it, use a larger cache. |
| 183 kCache32Bits = 8, | 189 kCache32Bits = 8, |
| 184 kCache32Count = (1 << kCache32Bits), | 190 kCache32Count = (1 << kCache32Bits), |
| 185 kCache32Shift = 16 - kCache32Bits, | 191 kCache32Shift = 16 - kCache32Bits, |
| 186 kSqrt32Shift = 8 - kCache32Bits, | 192 kSqrt32Shift = 8 - kCache32Bits, |
| 187 | 193 |
| 188 /// This value is used to *read* the dither cache; it may be 0 | 194 /// This value is used to *read* the dither cache; it may be 0 |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 207 struct Rec { | 213 struct Rec { |
| 208 SkFixed fPos; // 0...1 | 214 SkFixed fPos; // 0...1 |
| 209 uint32_t fScale; // (1 << 24) / range | 215 uint32_t fScale; // (1 << 24) / range |
| 210 }; | 216 }; |
| 211 Rec* fRecs; | 217 Rec* fRecs; |
| 212 | 218 |
| 213 void commonAsAGradient(GradientInfo*, bool flipGrad = false) const; | 219 void commonAsAGradient(GradientInfo*, bool flipGrad = false) const; |
| 214 | 220 |
| 215 bool onAsLuminanceColor(SkColor*) const override; | 221 bool onAsLuminanceColor(SkColor*) const override; |
| 216 | 222 |
| 223 | |
| 224 void initLinearBitmap(SkBitmap* bitmap) const; | |
| 225 | |
| 217 /* | 226 /* |
| 218 * Takes in pointers to gradient color and Rec info as colorSrc and recSrc r espectively. | 227 * Takes in pointers to gradient color and Rec info as colorSrc and recSrc r espectively. |
| 219 * Count is the number of colors in the gradient | 228 * Count is the number of colors in the gradient |
| 220 * It will then flip all the color and rec information and return in their r espective Dst | 229 * It will then flip all the color and rec information and return in their r espective Dst |
| 221 * pointers. It is assumed that space has already been allocated for the Dst pointers. | 230 * pointers. It is assumed that space has already been allocated for the Dst pointers. |
| 222 * The rec src and dst are only assumed to be valid if count > 2 | 231 * The rec src and dst are only assumed to be valid if count > 2 |
| 223 */ | 232 */ |
| 224 static void FlipGradientColors(SkColor* colorDst, Rec* recDst, | 233 static void FlipGradientColors(SkColor* colorDst, Rec* recDst, |
| 225 SkColor* colorSrc, Rec* recSrc, | 234 SkColor* colorSrc, Rec* recSrc, |
| 226 int count); | 235 int count); |
| (...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 483 kMirrorTileMode = 48, | 492 kMirrorTileMode = 48, |
| 484 | 493 |
| 485 // Lower six bits for premul, 2/3 color type, and tile mode | 494 // Lower six bits for premul, 2/3 color type, and tile mode |
| 486 kReservedBits = 6, | 495 kReservedBits = 6, |
| 487 #endif | 496 #endif |
| 488 }; | 497 }; |
| 489 | 498 |
| 490 SkScalar fCachedYCoord; | 499 SkScalar fCachedYCoord; |
| 491 GrGLSLProgramDataManager::UniformHandle fColorsUni; | 500 GrGLSLProgramDataManager::UniformHandle fColorsUni; |
| 492 GrGLSLProgramDataManager::UniformHandle fFSYUni; | 501 GrGLSLProgramDataManager::UniformHandle fFSYUni; |
| 502 GrGLSLProgramDataManager::UniformHandle fColorSpaceXformUni; | |
| 493 | 503 |
| 494 typedef GrGLSLFragmentProcessor INHERITED; | 504 typedef GrGLSLFragmentProcessor INHERITED; |
| 495 }; | 505 }; |
| 496 | 506 |
| 497 #endif | 507 #endif |
| 498 | 508 |
| 499 #endif | 509 #endif |
| OLD | NEW |