re-land of skslc type constructor cleanups

BUG=skia:

Change-Id: I953be07e2389dd4a9e7dcce0ddfd7505b309bda1
Reviewed-on: https://skia-review.googlesource.com/8265
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
diff --git a/src/gpu/instanced/InstanceProcessor.cpp b/src/gpu/instanced/InstanceProcessor.cpp
index 8626eb9..2ac5b8e 100644
--- a/src/gpu/instanced/InstanceProcessor.cpp
+++ b/src/gpu/instanced/InstanceProcessor.cpp
@@ -115,12 +115,26 @@
 
     void fetchNextParam(GrSLType type = kVec4f_GrSLType) const {
         SkASSERT(fParamsBuffer.isValid());
-        if (type != kVec4f_GrSLType) {
-            fVertexBuilder->codeAppendf("%s(", GrGLSLTypeString(type));
+        switch (type) {
+            case kVec2f_GrSLType: // fall through
+            case kVec3f_GrSLType: // fall through
+            case kVec4f_GrSLType:
+                break;
+            default:
+                fVertexBuilder->codeAppendf("%s(", GrGLSLTypeString(type));
         }
         fVertexBuilder->appendTexelFetch(fParamsBuffer, "paramsIdx++");
-        if (type != kVec4f_GrSLType) {
-            fVertexBuilder->codeAppend(")");
+        switch (type) {
+            case kVec2f_GrSLType:
+                fVertexBuilder->codeAppend(".xy");
+                break;
+            case kVec3f_GrSLType:
+                fVertexBuilder->codeAppend(".xyz");
+                break;
+            case kVec4f_GrSLType:
+                break;
+            default:
+                fVertexBuilder->codeAppend(")");
         }
     }