Refactor GrColorSpaceXformHelper

Nonlinear blending mode is going to (sometimes) require additional
uniforms and shader code for color space transformation.

This change just alters the usage of the helper struct so that we can
hide any new logic (without having to change all the FPs that use it).

BUG=skia:

Change-Id: I913478a387973f5bad5aa09a29f85d21daacab94
Reviewed-on: https://skia-review.googlesource.com/9414
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/gpu/effects/GrTextureDomain.cpp b/src/gpu/effects/GrTextureDomain.cpp
index 2ac6af8..7a43328 100644
--- a/src/gpu/effects/GrTextureDomain.cpp
+++ b/src/gpu/effects/GrTextureDomain.cpp
@@ -321,9 +321,7 @@
             GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder;
             SkString coords2D = fragBuilder->ensureCoords2D(args.fTransformedCoords[0]);
 
-            GrGLSLColorSpaceXformHelper colorSpaceHelper(args.fUniformHandler,
-                                                         tde.colorSpaceXform(),
-                                                         &fColorSpaceXformUni);
+            fColorSpaceHelper.emitCode(args.fUniformHandler, tde.colorSpaceXform());
             fGLDomain.sampleTexture(fragBuilder,
                                     args.fUniformHandler,
                                     args.fShaderCaps,
@@ -332,7 +330,7 @@
                                     coords2D,
                                     args.fTexSamplers[0],
                                     args.fInputColor,
-                                    &colorSpaceHelper);
+                                    &fColorSpaceHelper);
         }
 
     protected:
@@ -341,13 +339,13 @@
             const GrTextureDomain& domain = tde.fTextureDomain;
             fGLDomain.setData(pdman, domain, tde.textureSampler(0).texture());
             if (SkToBool(tde.colorSpaceXform())) {
-                pdman.setSkMatrix44(fColorSpaceXformUni, tde.colorSpaceXform()->srcToDst());
+                fColorSpaceHelper.setData(pdman, tde.colorSpaceXform());
             }
         }
 
     private:
         GrTextureDomain::GLDomain         fGLDomain;
-        UniformHandle                     fColorSpaceXformUni;
+        GrGLSLColorSpaceXformHelper       fColorSpaceHelper;
     };
 
     return new GLSLProcessor;