Fix for cropped matrix convolution for BottomLeft render targets.

R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk/src@11872 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/effects/SkMatrixConvolutionImageFilter.cpp b/effects/SkMatrixConvolutionImageFilter.cpp
index 04326c6..a9dfecc 100644
--- a/effects/SkMatrixConvolutionImageFilter.cpp
+++ b/effects/SkMatrixConvolutionImageFilter.cpp
@@ -515,11 +515,15 @@
     uman.set1f(fGainUni, conv.gain());
     uman.set1f(fBiasUni, conv.bias());
     const SkIRect& bounds = conv.bounds();
-    uman.set4f(fBoundsUni,
-                (float) bounds.left() / texture.width(),
-                (float) bounds.top() / texture.height(),
-                (float) bounds.right() / texture.width(),
-                (float) bounds.bottom() / texture.height());
+    float left = (float) bounds.left() / texture.width();
+    float top = (float) bounds.top() / texture.height();
+    float right = (float) bounds.right() / texture.width();
+    float bottom = (float) bounds.bottom() / texture.height();
+    if (texture.origin() == kBottomLeft_GrSurfaceOrigin) {
+        uman.set4f(fBoundsUni, left, 1.0f - bottom, right, 1.0f - top);
+    } else {
+        uman.set4f(fBoundsUni, left, top, right, bottom);
+    }
 }
 
 GrMatrixConvolutionEffect::GrMatrixConvolutionEffect(GrTexture* texture,