Index: src/effects/SkPerlinNoiseShader.cpp |
diff --git a/src/effects/SkPerlinNoiseShader.cpp b/src/effects/SkPerlinNoiseShader.cpp |
index 14c2193bc44b1d826754dccce15c8318af124d1f..5e173c2776a54f6a0dc8b16c1488ff0ae6e63ef8 100644 |
--- a/src/effects/SkPerlinNoiseShader.cpp |
+++ b/src/effects/SkPerlinNoiseShader.cpp |
@@ -626,7 +626,9 @@ GrFragmentProcessor* GrPerlinNoiseEffect::TestCreate(SkRandom* random, |
SkPaint paint; |
GrColor paintColor; |
GrFragmentProcessor* effect; |
- SkAssertResult(shader->asFragmentProcessor(context, paint, NULL, &paintColor, &effect)); |
+ SkAssertResult(shader->asFragmentProcessor(context, paint, |
+ GrProcessorUnitTest::TestMatrix(random), NULL, |
+ &paintColor, &effect)); |
SkDELETE(shader); |
@@ -943,6 +945,7 @@ void GrGLPerlinNoise::setData(const GrGLProgramDataManager& pdman, const GrProce |
///////////////////////////////////////////////////////////////////// |
bool SkPerlinNoiseShader::asFragmentProcessor(GrContext* context, const SkPaint& paint, |
+ const SkMatrix& viewM, |
const SkMatrix* externalLocalMatrix, |
GrColor* paintColor, GrFragmentProcessor** fp) const { |
SkASSERT(context); |
@@ -954,7 +957,7 @@ bool SkPerlinNoiseShader::asFragmentProcessor(GrContext* context, const SkPaint& |
localMatrix.preConcat(*externalLocalMatrix); |
} |
- SkMatrix matrix = context->getMatrix(); |
+ SkMatrix matrix = viewM; |
matrix.preConcat(localMatrix); |
if (0 == fNumOctaves) { |
@@ -978,7 +981,7 @@ bool SkPerlinNoiseShader::asFragmentProcessor(GrContext* context, const SkPaint& |
SkAutoTUnref<GrTexture> noiseTexture( |
GrRefCachedBitmapTexture(context, paintingData->getNoiseBitmap(), NULL)); |
- SkMatrix m = context->getMatrix(); |
+ SkMatrix m = viewM; |
m.setTranslateX(-localMatrix.getTranslateX() + SK_Scalar1); |
m.setTranslateY(-localMatrix.getTranslateY() + SK_Scalar1); |
if ((permutationsTexture) && (noiseTexture)) { |