Index: include/effects/SkPerlinNoiseShader.h |
diff --git a/include/effects/SkPerlinNoiseShader.h b/include/effects/SkPerlinNoiseShader.h |
index 5b270293b16a19b70db7878e67ceb1242772e01e..dfd5a8c1e72da46d4332369e98e81c7983695ca6 100644 |
--- a/include/effects/SkPerlinNoiseShader.h |
+++ b/include/effects/SkPerlinNoiseShader.h |
@@ -72,32 +72,10 @@ |
} |
- virtual SkShader::Context* createContext( |
- const SkBitmap& device, const SkPaint& paint, |
- const SkMatrix& matrix, void* storage) const SK_OVERRIDE; |
- virtual size_t contextSize() const SK_OVERRIDE; |
- |
- class PerlinNoiseShaderContext : public SkShader::Context { |
- public: |
- PerlinNoiseShaderContext(const SkPerlinNoiseShader& shader, const SkBitmap& device, |
- const SkPaint& paint, const SkMatrix& matrix); |
- virtual ~PerlinNoiseShaderContext() {} |
- |
- 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: |
- SkPMColor shade(const SkPoint& point, StitchData& stitchData) const; |
- SkScalar calculateTurbulenceValueForPoint( |
- int channel, const PaintingData& paintingData, |
- StitchData& stitchData, const SkPoint& point) const; |
- SkScalar noise2D(int channel, const PaintingData& paintingData, |
- const StitchData& stitchData, const SkPoint& noiseVector) const; |
- |
- SkMatrix fMatrix; |
- |
- typedef SkShader::Context INHERITED; |
- }; |
+ virtual bool setContext(const SkBitmap& device, const SkPaint& paint, |
+ const SkMatrix& matrix); |
+ 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; |
virtual GrEffectRef* asNewEffect(GrContext* context, const SkPaint&) const SK_OVERRIDE; |
@@ -114,6 +92,14 @@ |
const SkISize* tileSize); |
virtual ~SkPerlinNoiseShader(); |
+ SkScalar noise2D(int channel, const PaintingData& paintingData, |
+ const StitchData& stitchData, const SkPoint& noiseVector) const; |
+ |
+ SkScalar calculateTurbulenceValueForPoint(int channel, const PaintingData& paintingData, |
+ StitchData& stitchData, const SkPoint& point) const; |
+ |
+ SkPMColor shade(const SkPoint& point, StitchData& stitchData) const; |
+ |
// TODO (scroggo): Once all SkShaders are created from a factory, and we have removed the |
// constructor that creates SkPerlinNoiseShader from an SkReadBuffer, several fields can |
// be made constant. |
@@ -124,6 +110,8 @@ |
/*const*/ SkScalar fSeed; |
/*const*/ SkISize fTileSize; |
/*const*/ bool fStitchTiles; |
+ // TODO (scroggo): Once setContext creates a new object, place this on that object. |
+ SkMatrix fMatrix; |
PaintingData* fPaintingData; |