apply localmatrix in pre-order, to match other shaders
authorreed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Mon, 12 May 2014 18:12:24 +0000 (18:12 +0000)
committerreed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Mon, 12 May 2014 18:12:24 +0000 (18:12 +0000)
BUG=skia:

Review URL: https://codereview.chromium.org/280293002

git-svn-id: http://skia.googlecode.com/svn/trunk@14699 2bbb7eff-a529-9590-31e7-b0007b416f81

src/effects/SkPerlinNoiseShader.cpp

index 1015377..6864554 100644 (file)
@@ -439,7 +439,10 @@ SkPerlinNoiseShader::PerlinNoiseShaderContext::PerlinNoiseShaderContext(
     : INHERITED(shader, rec)
 {
     SkMatrix newMatrix = *rec.fMatrix;
-    newMatrix.postConcat(shader.getLocalMatrix());
+    newMatrix.preConcat(shader.getLocalMatrix());
+    if (rec.fLocalMatrix) {
+        newMatrix.preConcat(*rec.fLocalMatrix);
+    }
     SkMatrix invMatrix;
     if (!newMatrix.invert(&invMatrix)) {
         invMatrix.reset();