| Index: src/effects/gradients/SkGradientShaderPriv.h
|
| diff --git a/src/effects/gradients/SkGradientShaderPriv.h b/src/effects/gradients/SkGradientShaderPriv.h
|
| index 38b506be7e8de5b7b8490a2fe24a781ce19c8df7..b7b3bed6e1daf72012ffcd58a46b2e3a296ccf85 100644
|
| --- a/src/effects/gradients/SkGradientShaderPriv.h
|
| +++ b/src/effects/gradients/SkGradientShaderPriv.h
|
| @@ -126,7 +126,7 @@ public:
|
| // The cache is initialized on-demand when getCache16/32 is called.
|
| class GradientShaderCache : public SkRefCnt {
|
| public:
|
| - GradientShaderCache(U8CPU alpha, const SkGradientShaderBase& shader);
|
| + GradientShaderCache(U8CPU alpha, bool dither, const SkGradientShaderBase& shader);
|
| ~GradientShaderCache();
|
|
|
| const uint16_t* getCache16();
|
| @@ -135,6 +135,7 @@ public:
|
| SkMallocPixelRef* getCache32PixelRef() const { return fCache32PixelRef; }
|
|
|
| unsigned getAlpha() const { return fCacheAlpha; }
|
| + bool getDither() const { return fCacheDither; }
|
|
|
| private:
|
| // Working pointers. If either is nullptr, we need to recompute the corresponding cache values.
|
| @@ -146,6 +147,7 @@ public:
|
| const unsigned fCacheAlpha; // The alpha value we used when we computed the cache.
|
| // Larger than 8bits so we can store uninitialized
|
| // value.
|
| + const bool fCacheDither; // The dither flag used when we computed the cache.
|
|
|
| const SkGradientShaderBase& fShader;
|
|
|
| @@ -156,9 +158,9 @@ public:
|
| static void initCache16(GradientShaderCache* cache);
|
| static void initCache32(GradientShaderCache* cache);
|
|
|
| - static void Build16bitCache(uint16_t[], SkColor c0, SkColor c1, int count);
|
| + static void Build16bitCache(uint16_t[], SkColor c0, SkColor c1, int count, bool dither);
|
| static void Build32bitCache(SkPMColor[], SkColor c0, SkColor c1, int count,
|
| - U8CPU alpha, uint32_t gradFlags);
|
| + U8CPU alpha, uint32_t gradFlags, bool dither);
|
| };
|
|
|
| class GradientShaderBaseContext : public SkShader::Context {
|
| @@ -172,6 +174,7 @@ public:
|
| SkMatrix::MapXYProc fDstToIndexProc;
|
| uint8_t fDstToIndexClass;
|
| uint8_t fFlags;
|
| + bool fDither;
|
|
|
| SkAutoTUnref<GradientShaderCache> fCache;
|
|
|
| @@ -260,7 +263,7 @@ private:
|
| SkScalar* fOrigPos; // original positions
|
| bool fColorsAreOpaque;
|
|
|
| - GradientShaderCache* refCache(U8CPU alpha) const;
|
| + GradientShaderCache* refCache(U8CPU alpha, bool dither) const;
|
| mutable SkMutex fCacheMutex;
|
| mutable SkAutoTUnref<GradientShaderCache> fCache;
|
|
|
|
|