| Index: include/core/SkComposeShader.h
|
| diff --git a/include/core/SkComposeShader.h b/include/core/SkComposeShader.h
|
| index 1fefd1369a1c3eec87146f43abeacd02b9aa0c54..369955036541509c1bb200eddc36ab321255cddc 100644
|
| --- a/include/core/SkComposeShader.h
|
| +++ b/include/core/SkComposeShader.h
|
| @@ -34,10 +34,29 @@ public:
|
| 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&) 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:
|
| + // Takes ownership of contextA and contextB, and calls their destructors.
|
| + ComposeShaderContext(const SkComposeShader&, const SkBitmap&,
|
| + const SkPaint&, const SkMatrix&,
|
| + SkShader::Context* contextA, SkShader::Context* contextB);
|
| +
|
| + 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;
|
| + };
|
| +
|
|
|
| SK_DEVELOPER_TO_STRING()
|
| SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposeShader)
|
| @@ -52,6 +71,8 @@ private:
|
| SkShader* fShaderB;
|
| SkXfermode* fMode;
|
|
|
| + friend class ComposeImpl;
|
| +
|
| typedef SkShader INHERITED;
|
| };
|
|
|
|
|