| Index: include/core/SkComposeShader.h
|
| diff --git a/include/core/SkComposeShader.h b/include/core/SkComposeShader.h
|
| index b54e5efa97e0914dab0564ed940e1f9958607b64..d42da0c2f32aaab77ed14c55c9c4968d92496c08 100644
|
| --- a/include/core/SkComposeShader.h
|
| +++ b/include/core/SkComposeShader.h
|
| @@ -34,10 +34,38 @@
|
| SkComposeShader(SkShader* sA, SkShader* sB, SkXfermode* mode = NULL);
|
| virtual ~SkComposeShader();
|
|
|
| - 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 bool validContext(const SkBitmap&, const SkPaint&,
|
| + const SkMatrix&, SkMatrix* totalInverse = NULL) const SK_OVERRIDE;
|
| + virtual SkShader::Context* createContext(const SkBitmap&, const SkPaint&,
|
| + const SkMatrix&, void*) const SK_OVERRIDE;
|
| + virtual size_t contextSize() const SK_OVERRIDE;
|
| +
|
| + class ComposeShaderContext : public SkShader::Context {
|
| + public:
|
| + // When this object gets destroyed, it will call contextA and contextB's destructor
|
| + // but it will NOT free the memory.
|
| + ComposeShaderContext(const SkComposeShader&, const SkBitmap&,
|
| + const SkPaint&, const SkMatrix&,
|
| + SkShader::Context* contextA, SkShader::Context* contextB);
|
| +
|
| + SkShader::Context* getShaderContextA() const { return fShaderContextA; }
|
| + SkShader::Context* getShaderContextB() const { return fShaderContextB; }
|
| +
|
| + virtual ~ComposeShaderContext();
|
| +
|
| + virtual void shadeSpan(int x, int y, SkPMColor[], int count) SK_OVERRIDE;
|
| +
|
| + private:
|
| + SkShader::Context* fShaderContextA;
|
| + SkShader::Context* fShaderContextB;
|
| +
|
| + typedef SkShader::Context INHERITED;
|
| + };
|
| +
|
| +#ifdef SK_DEBUG
|
| + SkShader* getShaderA() { return fShaderA; }
|
| + SkShader* getShaderB() { return fShaderB; }
|
| +#endif
|
|
|
| SK_TO_STRING_OVERRIDE()
|
| SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposeShader)
|
| @@ -47,7 +75,6 @@
|
| virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
|
|
|
| private:
|
| -
|
| SkShader* fShaderA;
|
| SkShader* fShaderB;
|
| SkXfermode* fMode;
|
|
|