| Index: include/core/SkShader.h
|
| diff --git a/include/core/SkShader.h b/include/core/SkShader.h
|
| index b0a7fd9f8a1474c2872bf9851ca163551f7933d1..32707d7313c789af8118cd9c4510aa94d715c5a9 100644
|
| --- a/include/core/SkShader.h
|
| +++ b/include/core/SkShader.h
|
| @@ -119,10 +119,26 @@ public:
|
| */
|
| virtual bool isOpaque() const { return false; }
|
|
|
| + /**
|
| + * ContextRec acts as a parameter bundle for creating Contexts.
|
| + */
|
| + struct ContextRec {
|
| + ContextRec() : fDevice(NULL), fPaint(NULL), fMatrix(NULL) {}
|
| + ContextRec(const ContextRec& other)
|
| + : fDevice(other.fDevice), fPaint(other.fPaint), fMatrix(other.fMatrix) {}
|
| + ContextRec(const SkBitmap& device, const SkPaint& paint, const SkMatrix& matrix)
|
| + : fDevice(&device)
|
| + , fPaint(&paint)
|
| + , fMatrix(&matrix) {}
|
| +
|
| + const SkBitmap* fDevice; // the bitmap we are drawing into
|
| + const SkPaint* fPaint; // the current paint associated with the draw
|
| + const SkMatrix* fMatrix; // the current matrix in the canvas
|
| + };
|
| +
|
| class Context : public ::SkNoncopyable {
|
| public:
|
| - Context(const SkShader& shader, const SkBitmap& device,
|
| - const SkPaint& paint, const SkMatrix& matrix);
|
| + Context(const SkShader& shader, const ContextRec&);
|
|
|
| virtual ~Context();
|
|
|
| @@ -200,8 +216,7 @@ public:
|
| * Subclasses should be sure to call their INHERITED::validContext() if
|
| * they override this method.
|
| */
|
| - virtual bool validContext(const SkBitmap& device, const SkPaint& paint,
|
| - const SkMatrix& matrix, SkMatrix* totalInverse = NULL) const;
|
| + virtual bool validContext(const ContextRec&, SkMatrix* totalInverse = NULL) const;
|
|
|
| /**
|
| * Create the actual object that does the shading.
|
| @@ -211,10 +226,7 @@ public:
|
| *
|
| * Base class implementation returns NULL.
|
| */
|
| - virtual Context* createContext(const SkBitmap& device,
|
| - const SkPaint& paint,
|
| - const SkMatrix& matrix,
|
| - void* storage) const;
|
| + virtual Context* createContext(const ContextRec&, void* storage) const;
|
|
|
| /**
|
| * Return the size of a Context returned by createContext.
|
|
|