summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/skia/src/core/SkFilterShader.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/skia/src/core/SkFilterShader.h')
-rw-r--r--chromium/third_party/skia/src/core/SkFilterShader.h34
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;