diff options
Diffstat (limited to 'src/effects/gradients/SkRadialGradient.h')
-rw-r--r-- | src/effects/gradients/SkRadialGradient.h | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/effects/gradients/SkRadialGradient.h b/src/effects/gradients/SkRadialGradient.h index 4a725145b0..a3d04b1aaf 100644 --- a/src/effects/gradients/SkRadialGradient.h +++ b/src/effects/gradients/SkRadialGradient.h @@ -14,10 +14,24 @@ class SkRadialGradient : public SkGradientShaderBase { public: SkRadialGradient(const SkPoint& center, SkScalar radius, const Descriptor&); - virtual void shadeSpan(int x, int y, SkPMColor* dstC, int count) - SK_OVERRIDE; - virtual void shadeSpan16(int x, int y, uint16_t* dstCParam, - int count) SK_OVERRIDE; + + virtual SkShader::Context* createContext(const SkBitmap&, const SkPaint&, const SkMatrix&, + void* storage) const SK_OVERRIDE; + virtual size_t contextSize() const SK_OVERRIDE; + + class RadialGradientContext : public SkGradientShaderBase::GradientShaderBaseContext { + public: + RadialGradientContext(const SkRadialGradient& shader, const SkBitmap& device, + const SkPaint& paint, const SkMatrix& matrix); + ~RadialGradientContext() {} + + virtual void shadeSpan(int x, int y, SkPMColor dstC[], int count) SK_OVERRIDE; + virtual void shadeSpan16(int x, int y, uint16_t dstC[], int count) SK_OVERRIDE; + + private: + typedef SkGradientShaderBase::GradientShaderBaseContext INHERITED; + }; + virtual BitmapType asABitmap(SkBitmap* bitmap, SkMatrix* matrix, TileMode* xy) const SK_OVERRIDE; |