| 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 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 Descriptor() { | 86 Descriptor() { |
| 87 sk_bzero(this, sizeof(*this)); | 87 sk_bzero(this, sizeof(*this)); |
| 88 fTileMode = SkShader::kClamp_TileMode; | 88 fTileMode = SkShader::kClamp_TileMode; |
| 89 } | 89 } |
| 90 | 90 |
| 91 const SkColor* fColors; | 91 const SkColor* fColors; |
| 92 const SkScalar* fPos; | 92 const SkScalar* fPos; |
| 93 int fCount; | 93 int fCount; |
| 94 SkShader::TileMode fTileMode; | 94 SkShader::TileMode fTileMode; |
| 95 SkUnitMapper* fMapper; | 95 SkUnitMapper* fMapper; |
| 96 uint32_t fFlags; |
| 96 }; | 97 }; |
| 97 | 98 |
| 98 public: | 99 public: |
| 99 SkGradientShaderBase(const Descriptor& desc); | 100 SkGradientShaderBase(const Descriptor& desc); |
| 100 virtual ~SkGradientShaderBase(); | 101 virtual ~SkGradientShaderBase(); |
| 101 | 102 |
| 102 virtual bool setContext(const SkBitmap&, const SkPaint&, const SkMatrix&) SK
_OVERRIDE; | 103 virtual bool setContext(const SkBitmap&, const SkPaint&, const SkMatrix&) SK
_OVERRIDE; |
| 103 virtual uint32_t getFlags() SK_OVERRIDE { return fFlags; } | 104 virtual uint32_t getFlags() SK_OVERRIDE { return fFlags; } |
| 104 virtual bool isOpaque() const SK_OVERRIDE; | 105 virtual bool isOpaque() const SK_OVERRIDE; |
| 105 | 106 |
| (...skipping 28 matching lines...) Expand all Loading... |
| 134 | 135 |
| 135 SkUnitMapper* fMapper; | 136 SkUnitMapper* fMapper; |
| 136 SkMatrix fPtsToUnit; // set by subclass | 137 SkMatrix fPtsToUnit; // set by subclass |
| 137 SkMatrix fDstToIndex; | 138 SkMatrix fDstToIndex; |
| 138 SkMatrix::MapXYProc fDstToIndexProc; | 139 SkMatrix::MapXYProc fDstToIndexProc; |
| 139 TileMode fTileMode; | 140 TileMode fTileMode; |
| 140 TileProc fTileProc; | 141 TileProc fTileProc; |
| 141 int fColorCount; | 142 int fColorCount; |
| 142 uint8_t fDstToIndexClass; | 143 uint8_t fDstToIndexClass; |
| 143 uint8_t fFlags; | 144 uint8_t fFlags; |
| 145 uint8_t fGradFlags; |
| 144 | 146 |
| 145 struct Rec { | 147 struct Rec { |
| 146 SkFixed fPos; // 0...1 | 148 SkFixed fPos; // 0...1 |
| 147 uint32_t fScale; // (1 << 24) / range | 149 uint32_t fScale; // (1 << 24) / range |
| 148 }; | 150 }; |
| 149 Rec* fRecs; | 151 Rec* fRecs; |
| 150 | 152 |
| 151 const uint16_t* getCache16() const; | 153 const uint16_t* getCache16() const; |
| 152 const SkPMColor* getCache32() const; | 154 const SkPMColor* getCache32() const; |
| 153 | 155 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 165 | 167 |
| 166 mutable uint16_t* fCache16; // working ptr. If this is NULL, we need to
recompute the cache values | 168 mutable uint16_t* fCache16; // working ptr. If this is NULL, we need to
recompute the cache values |
| 167 mutable SkPMColor* fCache32; // working ptr. If this is NULL, we need to
recompute the cache values | 169 mutable SkPMColor* fCache32; // working ptr. If this is NULL, we need to
recompute the cache values |
| 168 | 170 |
| 169 mutable uint16_t* fCache16Storage; // storage for fCache16, allocated o
n demand | 171 mutable uint16_t* fCache16Storage; // storage for fCache16, allocated o
n demand |
| 170 mutable SkMallocPixelRef* fCache32PixelRef; | 172 mutable SkMallocPixelRef* fCache32PixelRef; |
| 171 mutable unsigned fCacheAlpha; // the alpha value we used when we c
omputed the cache. larger than 8bits so we can store uninitialized value | 173 mutable unsigned fCacheAlpha; // the alpha value we used when we c
omputed the cache. larger than 8bits so we can store uninitialized value |
| 172 | 174 |
| 173 static void Build16bitCache(uint16_t[], SkColor c0, SkColor c1, int count); | 175 static void Build16bitCache(uint16_t[], SkColor c0, SkColor c1, int count); |
| 174 static void Build32bitCache(SkPMColor[], SkColor c0, SkColor c1, int count, | 176 static void Build32bitCache(SkPMColor[], SkColor c0, SkColor c1, int count, |
| 175 U8CPU alpha); | 177 U8CPU alpha, uint32_t gradFlags); |
| 176 void setCacheAlpha(U8CPU alpha) const; | 178 void setCacheAlpha(U8CPU alpha) const; |
| 177 void initCommon(); | 179 void initCommon(); |
| 178 | 180 |
| 179 typedef SkShader INHERITED; | 181 typedef SkShader INHERITED; |
| 180 }; | 182 }; |
| 181 | 183 |
| 182 static inline int init_dither_toggle(int x, int y) { | 184 static inline int init_dither_toggle(int x, int y) { |
| 183 x &= 1; | 185 x &= 1; |
| 184 y = (y & 1) << 1; | 186 y = (y & 1) << 1; |
| 185 return (x | y) * SkGradientShaderBase::kDitherStride32; | 187 return (x | y) * SkGradientShaderBase::kDitherStride32; |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 338 SkScalar fCachedYCoord; | 340 SkScalar fCachedYCoord; |
| 339 GrGLUniformManager::UniformHandle fFSYUni; | 341 GrGLUniformManager::UniformHandle fFSYUni; |
| 340 GrGLEffectMatrix fEffectMatrix; | 342 GrGLEffectMatrix fEffectMatrix; |
| 341 | 343 |
| 342 typedef GrGLEffect INHERITED; | 344 typedef GrGLEffect INHERITED; |
| 343 }; | 345 }; |
| 344 | 346 |
| 345 #endif | 347 #endif |
| 346 | 348 |
| 347 #endif | 349 #endif |
| OLD | NEW |