Move VertexBuilder to a GrGLFullShaderBuilder subclass

Removes the VertexBuilder nested class from GrGLShaderBuilder in favor
of a new GrGLFullShaderBuilder subclass, and adds an optional emitCode
overload to GrGLEffect that takes a GrGLFullShaderBuilder. Makes
setData virtual in GrGLEffectArray and adds a GrGLVertexEffectArray
subclass that gets built using a GrGLFullShaderBuilder. Also adds a
new GrGLVertexEffect subclass that makes the GrGLFullShaderBuilder
overload required for emitCode, and updates GrGLEffects to inherit
from GrGLVertexEffect where needed.

R=bsalomon@google.com

Author: cdalton@nvidia.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11612 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp
index 3691fe9..4fe7a2b 100644
--- a/src/gpu/gl/GrGLProgram.cpp
+++ b/src/gpu/gl/GrGLProgram.cpp
@@ -211,12 +211,8 @@
 
     const GrGLProgramDesc::KeyHeader& header = fDesc.getHeader();
 
-    bool needsVertexShader = true;
-
-    GrGLShaderBuilder builder(fGpu, fUniformManager, fDesc, needsVertexShader);
-    if (GrGLShaderBuilder::VertexBuilder* vertexBuilder = builder.getVertexBuilder()) {
-        fUniformHandles.fViewMatrixUni = vertexBuilder->getViewMatrixUniform();
-    }
+    GrGLFullShaderBuilder builder(fGpu, fUniformManager, fDesc);
+    fUniformHandles.fViewMatrixUni = builder.getViewMatrixUniform();
 
     // incoming color to current stage being processed.
     SkString inColor = builder.getInputColor();