Remove GrStringBuilder 

Review URL: http://codereview.appspot.com/6343093/



git-svn-id: http://skia.googlecode.com/svn/trunk@4514 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrStringBuilder.h b/src/gpu/GrStringBuilder.h
deleted file mode 100644
index 558d041..0000000
--- a/src/gpu/GrStringBuilder.h
+++ /dev/null
@@ -1,19 +0,0 @@
-
-/*
- * Copyright 2010 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-
-
-#ifndef GrStringBuilder_DEFINED
-#define GrStringBuilder_DEFINED
-
-#include "SkString.h"
-
-typedef SkString GrStringBuilder;
-
-#endif
-
diff --git a/src/gpu/effects/GrConvolutionEffect.cpp b/src/gpu/effects/GrConvolutionEffect.cpp
index d0462c6..349c867 100644
--- a/src/gpu/effects/GrConvolutionEffect.cpp
+++ b/src/gpu/effects/GrConvolutionEffect.cpp
@@ -73,7 +73,7 @@
 
 void GrGLConvolutionEffect::emitVS(GrGLShaderBuilder* state,
                                    const char* vertexCoords) {
-    GrStringBuilder* code = &state->fVSCode;
+    SkString* code = &state->fVSCode;
     code->appendf("\t\t%s -= vec2(%d, %d) * %s;\n",
                   vertexCoords, fRadius, fRadius,
                   fImageIncrementVar->getName().c_str());
@@ -83,7 +83,7 @@
                                    const char* outputColor,
                                    const char* inputColor,
                                    const char* samplerName) {
-    GrStringBuilder* code = &state->fFSCode;
+    SkString* code = &state->fFSCode;
 
     code->appendf("\t\t%s = vec4(0, 0, 0, 0);\n", outputColor);
 
@@ -92,8 +92,8 @@
     int width = this ->width();
     // Manually unroll loop because some drivers don't; yields 20-30% speedup.
     for (int i = 0; i < width; i++) {
-        GrStringBuilder index;
-        GrStringBuilder kernelIndex;
+        SkString index;
+        SkString kernelIndex;
         index.appendS32(i);
         fKernelVar->appendArrayAccess(index.c_str(), &kernelIndex);
         code->appendf("\t\t%s += ", outputColor);
diff --git a/src/gpu/effects/GrGradientEffects.cpp b/src/gpu/effects/GrGradientEffects.cpp
index 970cbd4..b1d1138 100644
--- a/src/gpu/effects/GrGradientEffects.cpp
+++ b/src/gpu/effects/GrGradientEffects.cpp
@@ -162,9 +162,9 @@
 
 void GrGLRadial2Gradient::emitVS(GrGLShaderBuilder* state,
                                  const char* vertexCoords) {
-    GrStringBuilder* code = &state->fVSCode;
-    GrStringBuilder p2;
-    GrStringBuilder p3;
+    SkString* code = &state->fVSCode;
+    SkString p2;
+    SkString p3;
     fVSParamVar->appendArrayAccess(2, &p2);
     fVSParamVar->appendArrayAccess(3, &p3);
 
@@ -182,16 +182,16 @@
                                  const char* outputColor,
                                  const char* inputColor,
                                  const char* samplerName) {
-    GrStringBuilder* code = &state->fFSCode;
-    GrStringBuilder cName("c");
-    GrStringBuilder ac4Name("ac4");
-    GrStringBuilder rootName("root");
-    GrStringBuilder p0;
-    GrStringBuilder p1;
-    GrStringBuilder p2;
-    GrStringBuilder p3;
-    GrStringBuilder p4;
-    GrStringBuilder p5;
+    SkString* code = &state->fFSCode;
+    SkString cName("c");
+    SkString ac4Name("ac4");
+    SkString rootName("root");
+    SkString p0;
+    SkString p1;
+    SkString p2;
+    SkString p3;
+    SkString p4;
+    SkString p5;
     fFSParamVar->appendArrayAccess(0, &p0);
     fFSParamVar->appendArrayAccess(1, &p1);
     fFSParamVar->appendArrayAccess(2, &p2);
@@ -201,7 +201,7 @@
 
     // If we we're able to interpolate the linear component,
     // bVar is the varying; otherwise compute it
-    GrStringBuilder bVar;
+    SkString bVar;
     if (state->fCoordDims == state->fVaryingDims) {
         bVar = fFSVaryingName;
         GrAssert(2 == state->fVaryingDims);
@@ -419,10 +419,10 @@
 
 void GrGLConical2Gradient::emitVS(GrGLShaderBuilder* state,
                                   const char* vertexCoords) {
-    GrStringBuilder* code = &state->fVSCode;
-    GrStringBuilder p2; // distance between centers
-    GrStringBuilder p3; // start radius
-    GrStringBuilder p5; // difference in radii (r1 - r0)
+    SkString* code = &state->fVSCode;
+    SkString p2; // distance between centers
+    SkString p3; // start radius
+    SkString p5; // difference in radii (r1 - r0)
     fVSParamVar->appendArrayAccess(2, &p2);
     fVSParamVar->appendArrayAccess(3, &p3);
     fVSParamVar->appendArrayAccess(5, &p5);
@@ -441,21 +441,21 @@
                                   const char* outputColor,
                                   const char* inputColor,
                                   const char* samplerName) {
-    GrStringBuilder* code = &state->fFSCode;
+    SkString* code = &state->fFSCode;
 
-    GrStringBuilder cName("c");
-    GrStringBuilder ac4Name("ac4");
-    GrStringBuilder dName("d");
-    GrStringBuilder qName("q");
-    GrStringBuilder r0Name("r0");
-    GrStringBuilder r1Name("r1");
-    GrStringBuilder tName("t");
-    GrStringBuilder p0; // 4a
-    GrStringBuilder p1; // 1/(2a)
-    GrStringBuilder p2; // distance between centers
-    GrStringBuilder p3; // start radius
-    GrStringBuilder p4; // start radius squared
-    GrStringBuilder p5; // difference in radii (r1 - r0)
+    SkString cName("c");
+    SkString ac4Name("ac4");
+    SkString dName("d");
+    SkString qName("q");
+    SkString r0Name("r0");
+    SkString r1Name("r1");
+    SkString tName("t");
+    SkString p0; // 4a
+    SkString p1; // 1/(2a)
+    SkString p2; // distance between centers
+    SkString p3; // start radius
+    SkString p4; // start radius squared
+    SkString p5; // difference in radii (r1 - r0)
     fFSParamVar->appendArrayAccess(0, &p0);
     fFSParamVar->appendArrayAccess(1, &p1);
     fFSParamVar->appendArrayAccess(2, &p2);
@@ -465,7 +465,7 @@
 
     // If we we're able to interpolate the linear component,
     // bVar is the varying; otherwise compute it
-    GrStringBuilder bVar;
+    SkString bVar;
     if (state->fCoordDims == state->fVaryingDims) {
         bVar = fFSVaryingName;
         GrAssert(2 == state->fVaryingDims);
diff --git a/src/gpu/effects/GrMorphologyEffect.cpp b/src/gpu/effects/GrMorphologyEffect.cpp
index 991e11b..40c1300 100644
--- a/src/gpu/effects/GrMorphologyEffect.cpp
+++ b/src/gpu/effects/GrMorphologyEffect.cpp
@@ -64,7 +64,7 @@
 
 void GrGLMorphologyEffect::emitVS(GrGLShaderBuilder* state,
                                   const char* vertexCoords) {
-    GrStringBuilder* code = &state->fVSCode;
+    SkString* code = &state->fVSCode;
     code->appendf("\t\t%s -= vec2(%d, %d) * %s;\n",
                   vertexCoords, fRadius, fRadius,
                   fImageIncrementVar->getName().c_str());
@@ -81,7 +81,7 @@
                                    const char* outputColor,
                                    const char* inputColor,
                                    const char* samplerName) {
-    GrStringBuilder* code = &state->fFSCode;
+    SkString* code = &state->fFSCode;
     // const char* texFunc = "texture2D";
     // bool complexCoord = false;
 
diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp
index fe7c6d5..2105cda 100644
--- a/src/gpu/gl/GrGLProgram.cpp
+++ b/src/gpu/gl/GrGLProgram.cpp
@@ -43,7 +43,7 @@
 #define COL_MATRIX_VEC_UNI_NAME "uColorMatrixVec"
 
 namespace {
-inline void tex_attr_name(int coordIdx, GrStringBuilder* s) {
+inline void tex_attr_name(int coordIdx, SkString* s) {
     *s = "aTexCoord";
     s->appendS32(coordIdx);
 }
@@ -75,17 +75,17 @@
 inline const char* declared_color_output_name() { return "fsColorOut"; }
 inline const char* dual_source_output_name() { return "dualSourceOut"; }
 
-inline void tex_matrix_name(int stage, GrStringBuilder* s) {
+inline void tex_matrix_name(int stage, SkString* s) {
     *s = "uTexM";
     s->appendS32(stage);
 }
 
-inline void sampler_name(int stage, GrStringBuilder* s) {
+inline void sampler_name(int stage, SkString* s) {
     *s = "uSampler";
     s->appendS32(stage);
 }
 
-inline void tex_domain_name(int stage, GrStringBuilder* s) {
+inline void tex_domain_name(int stage, SkString* s) {
     *s = "uTexDom";
     s->appendS32(stage);
 }
@@ -123,7 +123,7 @@
 static inline void modulate_helper(const char* outputVar,
                                    const char* var0,
                                    const char* var1,
-                                   GrStringBuilder* code) {
+                                   SkString* code) {
     GrAssert(NULL != outputVar);
     GrAssert(NULL != var0);
     GrAssert(NULL != var1);
@@ -151,7 +151,7 @@
 static inline void add_helper(const char* outputVar,
                               const char* var0,
                               const char* var1,
-                              GrStringBuilder* code) {
+                              SkString* code) {
     GrAssert(NULL != outputVar);
     GrAssert(NULL != var0);
     GrAssert(NULL != var1);
@@ -215,7 +215,7 @@
  * Create a blend_coeff * value string to be used in shader code. Sets empty
  * string if result is trivially zero.
  */
-static void blendTermString(GrStringBuilder* str, SkXfermode::Coeff coeff,
+static void blendTermString(SkString* str, SkXfermode::Coeff coeff,
                              const char* src, const char* dst,
                              const char* value) {
     switch (coeff) {
@@ -258,11 +258,11 @@
  * Adds a line to the fragment shader code which modifies the color by
  * the specified color filter.
  */
-static void addColorFilter(GrStringBuilder* fsCode, const char * outputVar,
+static void addColorFilter(SkString* fsCode, const char * outputVar,
                            SkXfermode::Coeff uniformCoeff,
                            SkXfermode::Coeff colorCoeff,
                            const char* inColor) {
-    GrStringBuilder colorStr, constStr;
+    SkString colorStr, constStr;
     blendTermString(&colorStr, colorCoeff, COL_FILTER_UNI_NAME,
                     inColor, inColor);
     blendTermString(&constStr, uniformCoeff, COL_FILTER_UNI_NAME,
@@ -274,7 +274,7 @@
  * Adds code to the fragment shader code which modifies the color by
  * the specified color matrix.
  */
-static void addColorMatrix(GrStringBuilder* fsCode, const char * outputVar,
+static void addColorMatrix(SkString* fsCode, const char * outputVar,
                            const char* inColor) {
     fsCode->appendf("\t%s = %s * vec4(%s.rgb / %s.a, %s.a) + %s;\n", outputVar, COL_MATRIX_UNI_NAME, inColor, inColor, inColor, COL_MATRIX_VEC_UNI_NAME);
     fsCode->appendf("\t%s.rgb *= %s.a;\n", outputVar, outputVar);
@@ -283,7 +283,7 @@
 void GrGLProgram::genEdgeCoverage(const GrGLContextInfo& gl,
                                   GrVertexLayout layout,
                                   CachedData* programData,
-                                  GrStringBuilder* coverageVar,
+                                  SkString* coverageVar,
                                   GrGLShaderBuilder* segments) const {
     if (layout & GrDrawTarget::kEdge_VertexLayoutBit) {
         const char *vsName, *fsName;
@@ -350,7 +350,7 @@
 void genInputColor(GrGLProgram::ProgramDesc::ColorInput colorInput,
                    GrGLProgram::CachedData* programData,
                    GrGLShaderBuilder* segments,
-                   GrStringBuilder* inColor) {
+                   SkString* inColor) {
     switch (colorInput) {
         case GrGLProgram::ProgramDesc::kAttribute_ColorInput: {
             segments->fVSAttrs.push_back().set(kVec4f_GrSLType,
@@ -379,7 +379,7 @@
 }
 
 void genAttributeCoverage(GrGLShaderBuilder* segments,
-                          GrStringBuilder* inOutCoverage) {
+                          SkString* inOutCoverage) {
     segments->fVSAttrs.push_back().set(kVec4f_GrSLType,
                                        GrGLShaderVar::kAttribute_TypeModifier,
                                        COV_ATTR_NAME);
@@ -397,7 +397,7 @@
     
 void genUniformCoverage(GrGLShaderBuilder* segments,
                         GrGLProgram::CachedData* programData,
-                        GrStringBuilder* inOutCoverage) {
+                        SkString* inOutCoverage) {
     segments->addUniform(GrGLShaderBuilder::kFragment_VariableLifetime,
                          kVec4f_GrSLType, COV_UNI_NAME);
     programData->fUniLocations.fCoverageUni = kUseUniform;
@@ -440,7 +440,7 @@
 #endif
 }
 
-const char* GrGLProgram::adjustInColor(const GrStringBuilder& inColor) const {
+const char* GrGLProgram::adjustInColor(const SkString& inColor) const {
     if (inColor.size()) {
           return inColor.c_str();
     } else {
@@ -542,7 +542,7 @@
             "\tgl_Position = vec4(pos3.xy, 0, pos3.z);\n");
 
     // incoming color to current stage being processed.
-    GrStringBuilder inColor;
+    SkString inColor;
 
     if (needComputedColor) {
         genInputColor((ProgramDesc::ColorInput) fProgramDesc.fColorInput,
@@ -557,7 +557,7 @@
     segments.fFSCode.append("void main() {\n");
 
     // add texture coordinates that are used to the list of vertex attr decls
-    GrStringBuilder texCoordAttrs[GrDrawState::kMaxTexCoords];
+    SkString texCoordAttrs[GrDrawState::kMaxTexCoords];
     for (int t = 0; t < GrDrawState::kMaxTexCoords; ++t) {
         if (GrDrawTarget::VertexUsesTexCoordIdx(t, layout)) {
             tex_attr_name(t, texCoordAttrs + t);
@@ -582,7 +582,7 @@
     // if we have color stages string them together, feeding the output color
     // of each to the next and generating code for each stage.
     if (needComputedColor) {
-        GrStringBuilder outColor;
+        SkString outColor;
         for (int s = 0; s < fProgramDesc.fFirstCoverageStage; ++s) {
             if (fProgramDesc.fStages[s].isEnabled()) {
                 // create var to hold stage result
@@ -670,7 +670,7 @@
     ///////////////////////////////////////////////////////////////////////////
     // compute the partial coverage (coverage stages and edge aa)
 
-    GrStringBuilder inCoverage;
+    SkString inCoverage;
     bool coverageIsZero = ProgramDesc::kTransBlack_ColorInput ==
                           fProgramDesc.fCoverageInput;
     // we don't need to compute coverage at all if we know the final shader
@@ -699,7 +699,7 @@
                     GrCrash("Unexpected input coverage.");
             }
 
-            GrStringBuilder outCoverage;
+            SkString outCoverage;
             const int& startStage = fProgramDesc.fFirstCoverageStage;
             for (int s = startStage; s < GrDrawState::kNumStages; ++s) {
                 if (fProgramDesc.fStages[s].isEnabled()) {
@@ -745,7 +745,7 @@
                 GrGLShaderVar::kOut_TypeModifier,
                 dual_source_output_name());
             bool outputIsZero = coverageIsZero;
-            GrStringBuilder coeff;
+            SkString coeff;
             if (!outputIsZero &&
                 ProgramDesc::kCoverage_DualSrcOutput !=
                 fProgramDesc.fDualSrcOutput && !wroteFragColorZero) {
@@ -839,7 +839,7 @@
 
 inline void expand_decls(const VarArray& vars,
                          const GrGLContextInfo& gl,
-                         GrStringBuilder* string) {
+                         SkString* string) {
     const int count = vars.count();
     for (int i = 0; i < count; ++i) {
         vars[i].appendDecl(gl, string);
@@ -865,10 +865,10 @@
 #define PREALLOC_LENGTH_ARRAY(N) SkSTArray<(N), int, true>
 
 // these shouldn't relocate
-typedef GrTAllocator<GrStringBuilder>       TempArray;
-#define PREALLOC_TEMP_ARRAY(N) GrSTAllocator<(N), GrStringBuilder>
+typedef GrTAllocator<SkString>              TempArray;
+#define PREALLOC_TEMP_ARRAY(N) GrSTAllocator<(N), SkString>
 
-inline void append_string(const GrStringBuilder& str,
+inline void append_string(const SkString& str,
                           StrArray* strings,
                           LengthArray* lengths) {
     int length = (int) str.size();
@@ -899,9 +899,9 @@
     PREALLOC_LENGTH_ARRAY(kPreAllocStringCnt) lengths;
     PREALLOC_TEMP_ARRAY(kPreAllocStringCnt)   temps;
 
-    GrStringBuilder unis;
-    GrStringBuilder inputs;
-    GrStringBuilder outputs;
+    SkString unis;
+    SkString inputs;
+    SkString outputs;
 
     append_string(segments.fHeader, &strs, &lengths);
     append_decls(segments.fVSUnis, gl, &strs, &lengths, &temps);
@@ -946,7 +946,7 @@
     temps.reset();
 
     append_string(segments.fHeader, &strs, &lengths);
-    GrStringBuilder precisionStr(GrGetGLSLShaderPrecisionDecl(gl.binding()));
+    SkString precisionStr(GrGetGLSLShaderPrecisionDecl(gl.binding()));
     append_string(precisionStr, &strs, &lengths);
     append_decls(segments.fFSUnis, gl, &strs, &lengths, &temps);
     append_decls(segments.fFSInputs, gl, &strs, &lengths, &temps);
@@ -1017,7 +1017,7 @@
 
 bool GrGLProgram::bindOutputsAttribsAndLinkProgram(
                                         const GrGLContextInfo& gl,
-                                        GrStringBuilder texCoordAttrNames[],
+                                        SkString texCoordAttrNames[],
                                         bool bindColorOut,
                                         bool bindDualSrcOut,
                                         CachedData* programData) const {
@@ -1121,7 +1121,7 @@
         StageUniLocations& locations = programData->fUniLocations.fStages[s];
         if (fProgramDesc.fStages[s].isEnabled()) {
             if (kUseUniform == locations.fTextureMatrixUni) {
-                GrStringBuilder texMName;
+                SkString texMName;
                 tex_matrix_name(s, &texMName);
                 GL_CALL_RET(locations.fTextureMatrixUni,
                             GetUniformLocation(progID, texMName.c_str()));
@@ -1129,7 +1129,7 @@
             }
 
             if (kUseUniform == locations.fSamplerUni) {
-                GrStringBuilder samplerName;
+                SkString samplerName;
                 sampler_name(s, &samplerName);
                 GL_CALL_RET(locations.fSamplerUni,
                             GetUniformLocation(progID,samplerName.c_str()));
@@ -1137,7 +1137,7 @@
             }
 
             if (kUseUniform == locations.fTexDomUni) {
-                GrStringBuilder texDomName;
+                SkString texDomName;
                 tex_domain_name(s, &texDomName);
                 GL_CALL_RET(locations.fTexDomUni,
                             GetUniformLocation(progID, texDomName.c_str()));
@@ -1196,7 +1196,7 @@
     if (desc.fOptFlags & StageDesc::kIdentityMatrix_OptFlagBit) {
         segments->fVaryingDims = segments->fCoordDims;
     } else {
-        GrStringBuilder texMatName;
+        SkString texMatName;
         tex_matrix_name(stageNum, &texMatName);
         const GrGLShaderVar* mat = &segments->addUniform(
             GrGLShaderBuilder::kVertex_VariableLifetime, kMat33f_GrSLType,
@@ -1218,7 +1218,7 @@
         customStage->setupVariables(segments, stageNum);
     }
 
-    GrStringBuilder samplerName;
+    SkString samplerName;
     sampler_name(stageNum, &samplerName);
     // const GrGLShaderVar* sampler = &
         segments->addUniform(GrGLShaderBuilder::kFragment_VariableLifetime,
@@ -1273,13 +1273,13 @@
          StageDesc::kMulRGBByAlpha_RoundDown_InConfigFlag);
 
     if (desc.fOptFlags & StageDesc::kCustomTextureDomain_OptFlagBit) {
-        GrStringBuilder texDomainName;
+        SkString texDomainName;
         tex_domain_name(stageNum, &texDomainName);
         // const GrGLShaderVar* texDomain = &
             segments->addUniform(
                 GrGLShaderBuilder::kFragment_VariableLifetime,
                 kVec4f_GrSLType, texDomainName.c_str());
-        GrStringBuilder coordVar("clampCoord");
+        SkString coordVar("clampCoord");
         segments->fFSCode.appendf("\t%s %s = clamp(%s, %s.xy, %s.zw);\n",
                                   float_vector_type_str(segments->fCoordDims),
                                   coordVar.c_str(),
diff --git a/src/gpu/gl/GrGLProgram.h b/src/gpu/gl/GrGLProgram.h
index 8edb500..bfc0d2e 100644
--- a/src/gpu/gl/GrGLProgram.h
+++ b/src/gpu/gl/GrGLProgram.h
@@ -13,9 +13,9 @@
 #include "GrGLContextInfo.h"
 #include "GrGLSL.h"
 #include "GrGLTexture.h"
-#include "GrStringBuilder.h"
 #include "GrGpu.h"
 
+#include "SkString.h"
 #include "SkXfermode.h"
 
 class GrBinHashKeyBuilder;
@@ -234,7 +234,7 @@
 private:
 
     const ProgramDesc& getDesc() { return fProgramDesc; }
-    const char* adjustInColor(const GrStringBuilder& inColor) const;
+    const char* adjustInColor(const SkString& inColor) const;
 
 public:
     enum {
@@ -354,7 +354,7 @@
     void genEdgeCoverage(const GrGLContextInfo& gl,
                          GrVertexLayout layout,
                          CachedData* programData,
-                         GrStringBuilder* coverageVar,
+                         SkString* coverageVar,
                          GrGLShaderBuilder* segments) const;
 
     static bool CompileShaders(const GrGLContextInfo& gl,
@@ -372,7 +372,7 @@
     // links the program
     bool bindOutputsAttribsAndLinkProgram(
                 const GrGLContextInfo& gl,
-                GrStringBuilder texCoordAttrNames[GrDrawState::kMaxTexCoords],
+                SkString texCoordAttrNames[GrDrawState::kMaxTexCoords],
                 bool bindColorOut,
                 bool bindDualSrcOut,
                 CachedData* programData) const;
diff --git a/src/gpu/gl/GrGLProgramStage.h b/src/gpu/gl/GrGLProgramStage.h
index e10d13b..fe3ed4b 100644
--- a/src/gpu/gl/GrGLProgramStage.h
+++ b/src/gpu/gl/GrGLProgramStage.h
@@ -14,7 +14,6 @@
 #include "GrGLShaderBuilder.h"
 #include "GrGLShaderVar.h"
 #include "GrGLSL.h"
-#include "GrStringBuilder.h"
 
 struct GrGLInterface;
 class GrGLTexture;
@@ -51,7 +50,7 @@
     /** Create any uniforms or varyings the vertex shader requires. */
     virtual void setupVariables(GrGLShaderBuilder* state, int stage);
 
-    /** Appends vertex code to the appropriate GrStringBuilder
+    /** Appends vertex code to the appropriate SkString
         on the state.
         The code will be inside an otherwise-empty block.
         Vertex shader input is a vec2 of coordinates, which may
@@ -60,7 +59,7 @@
     virtual void emitVS(GrGLShaderBuilder* state,
                         const char* vertexCoords) = 0;
 
-    /** Appends fragment code to the appropriate GrStringBuilder
+    /** Appends fragment code to the appropriate SkString
         on the state.
         The code will be inside an otherwise-empty block.
         Fragment shader inputs are a vec2 of coordinates, one texture,
diff --git a/src/gpu/gl/GrGLShaderBuilder.cpp b/src/gpu/gl/GrGLShaderBuilder.cpp
index 0f9331c..4074c4a 100644
--- a/src/gpu/gl/GrGLShaderBuilder.cpp
+++ b/src/gpu/gl/GrGLShaderBuilder.cpp
@@ -73,7 +73,7 @@
 
 void GrGLShaderBuilder::setupTextureAccess(SamplerMode samplerMode,
                                            int stageNum) {
-    GrStringBuilder retval;
+    SkString retval;
 
     fTexFunc = "texture2D";
     switch (samplerMode) {
@@ -161,7 +161,7 @@
         *vsOutName = fVSOutputs.back().getName().c_str();
     }
     // input to FS comes either from VS or GS
-    const GrStringBuilder* fsName;
+    const SkString* fsName;
     if (fUsesGS) {
         // if we have a GS take each varying in as an array
         // and output as non-array.
@@ -193,7 +193,7 @@
                                    int stageNum,
                                    const char** vsOutName,
                                    const char** fsInName) {
-    GrStringBuilder nameWithStage(name);
+    SkString nameWithStage(name);
     nameWithStage.appendS32(stageNum);
     this->addVarying(type, nameWithStage.c_str(), vsOutName, fsInName);
 }
diff --git a/src/gpu/gl/GrGLShaderBuilder.h b/src/gpu/gl/GrGLShaderBuilder.h
index cc8bc00..002a20a 100644
--- a/src/gpu/gl/GrGLShaderBuilder.h
+++ b/src/gpu/gl/GrGLShaderBuilder.h
@@ -91,23 +91,22 @@
                     int stageNum,
                     const char** vsOutName = NULL,
                     const char** fsInName = NULL);
-
-
-    GrStringBuilder fHeader; // VS+FS, GLSL version, etc
-    VarArray        fVSUnis;
-    VarArray        fVSAttrs;
-    VarArray        fVSOutputs;
-    VarArray        fGSInputs;
-    VarArray        fGSOutputs;
-    VarArray        fFSInputs;
-    GrStringBuilder fGSHeader; // layout qualifiers specific to GS
-    VarArray        fFSUnis;
-    VarArray        fFSOutputs;
-    GrStringBuilder fFSFunctions;
-    GrStringBuilder fVSCode;
-    GrStringBuilder fGSCode;
-    GrStringBuilder fFSCode;
-    bool            fUsesGS;
+    
+    SkString    fHeader; // VS+FS, GLSL version, etc
+    VarArray    fVSUnis;
+    VarArray    fVSAttrs;
+    VarArray    fVSOutputs;
+    VarArray    fGSInputs;
+    VarArray    fGSOutputs;
+    VarArray    fFSInputs;
+    SkString    fGSHeader; // layout qualifiers specific to GS
+    VarArray    fFSUnis;
+    VarArray    fFSOutputs;
+    SkString    fFSFunctions;
+    SkString    fVSCode;
+    SkString    fGSCode;
+    SkString    fFSCode;
+    bool        fUsesGS;
 
     /// Per-stage settings - only valid while we're inside
     /// GrGLProgram::genStageCode().
@@ -119,12 +118,12 @@
     /// True if fSampleCoords is an expression; false if it's a bare
     /// variable name
     bool             fComplexCoord;
-    GrStringBuilder  fSampleCoords;
+    SkString         fSampleCoords;
 
-    GrStringBuilder  fSwizzle;
-    GrStringBuilder  fModulate;
+    SkString         fSwizzle;
+    SkString         fModulate;
 
-    GrStringBuilder  fTexFunc;
+    SkString         fTexFunc;
 
     //@}
 
diff --git a/src/gpu/gl/GrGLShaderVar.h b/src/gpu/gl/GrGLShaderVar.h
index 69c63cf..7be417d 100644
--- a/src/gpu/gl/GrGLShaderVar.h
+++ b/src/gpu/gl/GrGLShaderVar.h
@@ -10,7 +10,7 @@
 
 #include "GrGLContextInfo.h"
 #include "GrGLSL.h"
-#include "GrStringBuilder.h"
+#include "SkString.h"
 
 #define USE_UNIFORM_FLOAT_ARRAYS true
 
@@ -65,7 +65,7 @@
      */
     void set(GrSLType type,
              TypeModifier typeModifier,
-             const GrStringBuilder& name,
+             const SkString& name,
              bool emitPrecision = false,
              bool useUniformFloatArrays = USE_UNIFORM_FLOAT_ARRAYS) {
         fType = type;
@@ -97,7 +97,7 @@
      */
     void set(GrSLType type,
              TypeModifier typeModifier,
-             const GrStringBuilder& name,
+             const SkString& name,
              int count,
              bool specifyPrecision = false,
              bool useUniformFloatArrays = USE_UNIFORM_FLOAT_ARRAYS) {
@@ -154,16 +154,16 @@
     /**
      * Access the var name as a writable string
      */
-    GrStringBuilder* accessName() { return &fName; }
+    SkString* accessName() { return &fName; }
     /**
      * Set the var name
      */
-    void setName(const GrStringBuilder& n) { fName = n; }
+    void setName(const SkString& n) { fName = n; }
     void setName(const char* n) { fName = n; }
     /**
      * Get the var name.
      */
-    const GrStringBuilder& getName() const { return fName; }
+    const SkString& getName() const { return fName; }
 
     /**
      * Get the type of the var
@@ -189,7 +189,7 @@
     /**
      * Write a declaration of this variable to out.
      */
-    void appendDecl(const GrGLContextInfo& gl, GrStringBuilder* out) const {
+    void appendDecl(const GrGLContextInfo& gl, SkString* out) const {
         if (this->getTypeModifier() != kNone_TypeModifier) {
            out->append(TypeModifierString(this->getTypeModifier(),
                                           gl.glslGeneration()));
@@ -242,14 +242,14 @@
         }
     }
 
-    void appendArrayAccess(int index, GrStringBuilder* out) const {
+    void appendArrayAccess(int index, SkString* out) const {
         out->appendf("%s[%d]%s",
                      this->getName().c_str(),
                      index,
                      fUseUniformFloatArrays ? "" : ".x");
     }
 
-    void appendArrayAccess(const char* indexName, GrStringBuilder* out) const {
+    void appendArrayAccess(const char* indexName, SkString* out) const {
         out->appendf("%s[%s]%s",
                      this->getName().c_str(),
                      indexName,
@@ -278,7 +278,7 @@
 
     GrSLType fType;
     TypeModifier    fTypeModifier;
-    GrStringBuilder fName;
+    SkString        fName;
     int             fCount;
     bool            fEmitPrecision;
     /// Work around driver bugs on some hardware that don't correctly