diff options
Diffstat (limited to 'chromium/third_party/skia/src/core/SkFilterShader.h')
-rw-r--r-- | chromium/third_party/skia/src/core/SkFilterShader.h | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/chromium/third_party/skia/src/core/SkFilterShader.h b/chromium/third_party/skia/src/core/SkFilterShader.h index be19640d0e2..1a4b71fe469 100644 --- a/chromium/third_party/skia/src/core/SkFilterShader.h +++ b/chromium/third_party/skia/src/core/SkFilterShader.h @@ -17,19 +17,33 @@ public: SkFilterShader(SkShader* shader, SkColorFilter* filter); virtual ~SkFilterShader(); - virtual uint32_t getFlags() SK_OVERRIDE; - virtual bool setContext(const SkBitmap&, const SkPaint&, - const SkMatrix&) SK_OVERRIDE; - virtual void endContext() SK_OVERRIDE; - virtual void shadeSpan(int x, int y, SkPMColor[], int count) SK_OVERRIDE; - virtual void shadeSpan16(int x, int y, uint16_t[], int count) SK_OVERRIDE; - - SK_DEVELOPER_TO_STRING() + virtual size_t contextSize() const SK_OVERRIDE; + + class FilterShaderContext : public SkShader::Context { + public: + // Takes ownership of shaderContext and calls its destructor. + FilterShaderContext(const SkFilterShader&, SkShader::Context*, const ContextRec&); + virtual ~FilterShaderContext(); + + virtual uint32_t getFlags() const SK_OVERRIDE; + + virtual void shadeSpan(int x, int y, SkPMColor[], int count) SK_OVERRIDE; + virtual void shadeSpan16(int x, int y, uint16_t[], int count) SK_OVERRIDE; + + private: + SkShader::Context* fShaderContext; + + typedef SkShader::Context INHERITED; + }; + + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkFilterShader) protected: - SkFilterShader(SkFlattenableReadBuffer& ); - virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE; + SkFilterShader(SkReadBuffer& ); + virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE; + virtual Context* onCreateContext(const ContextRec&, void* storage) const SK_OVERRIDE; + private: SkShader* fShader; |