Make GrGLEffect::setData take GrEffectStage rather than GrEffect.

This allows the coord-change matrix to be communicated to setData(). An accessor for this matrix is also added to GrEffectStage.

R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6779057

git-svn-id: http://skia.googlecode.com/svn/branches/gpu_dev@6143 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/gl/GrGLEffect.h b/src/gpu/gl/GrGLEffect.h
index 132c3d7..ad097ed 100644
--- a/src/gpu/gl/GrGLEffect.h
+++ b/src/gpu/gl/GrGLEffect.h
@@ -9,7 +9,7 @@
 #define GrGLEffect_DEFINED
 
 #include "GrAllocator.h"
-#include "GrEffect.h"
+#include "GrEffectStage.h"
 #include "GrGLProgram.h"
 #include "GrGLShaderBuilder.h"
 #include "GrGLShaderVar.h"
@@ -76,8 +76,10 @@
 
     /** A GrGLEffect instance can be reused with any GrEffect that produces the same stage
         key; this function reads data from a stage and uploads any uniform variables required
-        by the shaders created in emitCode(). */
-    virtual void setData(const GrGLUniformManager&, const GrEffect&);
+        by the shaders created in emitCode(). The GrEffect installed in the GrEffectStage is
+        guaranteed to be of the same type that created this GrGLEffect and to have an identical
+        EffectKey as the one that created this GrGLEffect. */
+    virtual void setData(const GrGLUniformManager&, const GrEffectStage&);
 
     const char* name() const { return fFactory.name(); }