Minor geometry processor clarification.

Some renames, comments, and override->final

Change-Id: Iebc7aeee9a64021e958f76bf4278ffff56884a56
Reviewed-on: https://skia-review.googlesource.com/35165
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/GrDefaultGeoProcFactory.cpp b/src/gpu/GrDefaultGeoProcFactory.cpp
index c94c47a..659d333 100644
--- a/src/gpu/GrDefaultGeoProcFactory.cpp
+++ b/src/gpu/GrDefaultGeoProcFactory.cpp
@@ -132,12 +132,12 @@
             }
 
             // Setup position
-            this->setupPosition(vertBuilder,
-                                uniformHandler,
-                                gpArgs,
-                                gp.inPosition()->fName,
-                                gp.viewMatrix(),
-                                &fViewMatrixUniform);
+            this->writeOutputPosition(vertBuilder,
+                                      uniformHandler,
+                                      gpArgs,
+                                      gp.inPosition()->fName,
+                                      gp.viewMatrix(),
+                                      &fViewMatrixUniform);
 
             if (gp.hasExplicitLocalCoords()) {
                 // emit transforms with explicit local coords
diff --git a/src/gpu/GrGeometryProcessor.h b/src/gpu/GrGeometryProcessor.h
index 086d9ba..d8962c2 100644
--- a/src/gpu/GrGeometryProcessor.h
+++ b/src/gpu/GrGeometryProcessor.h
@@ -24,9 +24,9 @@
         , fLocalCoordsType(kUnused_LocalCoordsType)
         , fSampleShading(0.0) {}
 
-    bool willUseGeoShader() const override { return fWillUseGeoShader; }
+    bool willUseGeoShader() const final { return fWillUseGeoShader; }
 
-    bool hasExplicitLocalCoords() const override {
+    bool hasExplicitLocalCoords() const final {
         return kHasExplicit_LocalCoordsType == fLocalCoordsType;
     }
 
@@ -35,9 +35,7 @@
      * instance, if sampleShading is 0.5 in MSAA16 mode, the fragment shader will run a minimum of
      * 8 times per pixel. The default value is zero.
      */
-    float getSampleShading() const override {
-        return fSampleShading;
-    }
+    float getSampleShading() const final { return fSampleShading; }
 
 protected:
     void setWillUseGeoShader() { fWillUseGeoShader = true; }
diff --git a/src/gpu/effects/GrBezierEffect.cpp b/src/gpu/effects/GrBezierEffect.cpp
index 50c47e8..706353a 100644
--- a/src/gpu/effects/GrBezierEffect.cpp
+++ b/src/gpu/effects/GrBezierEffect.cpp
@@ -86,12 +86,12 @@
     this->setupUniformColor(fragBuilder, uniformHandler, args.fOutputColor, &fColorUniform);
 
     // Setup position
-    this->setupPosition(vertBuilder,
-                        uniformHandler,
-                        gpArgs,
-                        gp.inPosition()->fName,
-                        gp.viewMatrix(),
-                        &fViewMatrixUniform);
+    this->writeOutputPosition(vertBuilder,
+                              uniformHandler,
+                              gpArgs,
+                              gp.inPosition()->fName,
+                              gp.viewMatrix(),
+                              &fViewMatrixUniform);
 
     // emit transforms with position
     this->emitTransforms(vertBuilder,
@@ -347,12 +347,12 @@
     this->setupUniformColor(fragBuilder, uniformHandler, args.fOutputColor, &fColorUniform);
 
     // Setup position
-    this->setupPosition(vertBuilder,
-                        uniformHandler,
-                        gpArgs,
-                        gp.inPosition()->fName,
-                        gp.viewMatrix(),
-                        &fViewMatrixUniform);
+    this->writeOutputPosition(vertBuilder,
+                              uniformHandler,
+                              gpArgs,
+                              gp.inPosition()->fName,
+                              gp.viewMatrix(),
+                              &fViewMatrixUniform);
 
     // emit transforms with position
     this->emitTransforms(vertBuilder,
@@ -552,12 +552,12 @@
     }
 
     // Setup position
-    this->setupPosition(vertBuilder,
-                        uniformHandler,
-                        gpArgs,
-                        gp.inPosition()->fName,
-                        gp.viewMatrix(),
-                        &fViewMatrixUniform);
+    this->writeOutputPosition(vertBuilder,
+                              uniformHandler,
+                              gpArgs,
+                              gp.inPosition()->fName,
+                              gp.viewMatrix(),
+                              &fViewMatrixUniform);
 
     // Setup KLM
     const char* devkLMMatrixName;
diff --git a/src/gpu/effects/GrBitmapTextGeoProc.cpp b/src/gpu/effects/GrBitmapTextGeoProc.cpp
index 8bba1d7..a934ff1 100644
--- a/src/gpu/effects/GrBitmapTextGeoProc.cpp
+++ b/src/gpu/effects/GrBitmapTextGeoProc.cpp
@@ -49,7 +49,7 @@
         }
 
         // Setup position
-        this->setupPosition(vertBuilder, gpArgs, cte.inPosition()->fName);
+        this->writeOutputPosition(vertBuilder, gpArgs, cte.inPosition()->fName);
 
         // emit transforms
         this->emitTransforms(vertBuilder,
diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.cpp b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
index 0dfb315..8dd2fa6 100644
--- a/src/gpu/effects/GrDistanceFieldGeoProc.cpp
+++ b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
@@ -54,12 +54,12 @@
         varyingHandler->addPassThroughAttribute(dfTexEffect.inColor(), args.fOutputColor);
 
         // Setup position
-        this->setupPosition(vertBuilder,
-                            uniformHandler,
-                            gpArgs,
-                            dfTexEffect.inPosition()->fName,
-                            dfTexEffect.viewMatrix(),
-                            &fViewMatrixUniform);
+        this->writeOutputPosition(vertBuilder,
+                                  uniformHandler,
+                                  gpArgs,
+                                  dfTexEffect.inPosition()->fName,
+                                  dfTexEffect.viewMatrix(),
+                                  &fViewMatrixUniform);
 
         // emit transforms
         this->emitTransforms(vertBuilder,
@@ -331,12 +331,12 @@
         vertBuilder->codeAppendf("%s = %s;", v.vsOut(), dfTexEffect.inTextureCoords()->fName);
 
         // Setup position
-        this->setupPosition(vertBuilder,
-                            uniformHandler,
-                            gpArgs,
-                            dfTexEffect.inPosition()->fName,
-                            dfTexEffect.viewMatrix(),
-                            &fViewMatrixUniform);
+        this->writeOutputPosition(vertBuilder,
+                                  uniformHandler,
+                                  gpArgs,
+                                  dfTexEffect.inPosition()->fName,
+                                  dfTexEffect.viewMatrix(),
+                                  &fViewMatrixUniform);
 
         // emit transforms
         this->emitTransforms(vertBuilder,
@@ -568,12 +568,12 @@
         varyingHandler->addPassThroughAttribute(dfTexEffect.inColor(), args.fOutputColor);
 
         // Setup position
-        this->setupPosition(vertBuilder,
-                            uniformHandler,
-                            gpArgs,
-                            dfTexEffect.inPosition()->fName,
-                            dfTexEffect.viewMatrix(),
-                            &fViewMatrixUniform);
+        this->writeOutputPosition(vertBuilder,
+                                  uniformHandler,
+                                  gpArgs,
+                                  dfTexEffect.inPosition()->fName,
+                                  dfTexEffect.viewMatrix(),
+                                  &fViewMatrixUniform);
 
         // emit transforms
         this->emitTransforms(vertBuilder,
diff --git a/src/gpu/effects/GrShadowGeoProc.cpp b/src/gpu/effects/GrShadowGeoProc.cpp
index 046240c..297dd50 100644
--- a/src/gpu/effects/GrShadowGeoProc.cpp
+++ b/src/gpu/effects/GrShadowGeoProc.cpp
@@ -33,7 +33,7 @@
         varyingHandler->addPassThroughAttribute(rsgp.inColor(), args.fOutputColor);
 
         // Setup position
-        this->setupPosition(vertBuilder, gpArgs, rsgp.inPosition()->fName);
+        this->writeOutputPosition(vertBuilder, gpArgs, rsgp.inPosition()->fName);
 
         // emit transforms
         this->emitTransforms(vertBuilder,
diff --git a/src/gpu/glsl/GrGLSLGeometryProcessor.cpp b/src/gpu/glsl/GrGLSLGeometryProcessor.cpp
index 3ab5b68..a390036 100644
--- a/src/gpu/glsl/GrGLSLGeometryProcessor.cpp
+++ b/src/gpu/glsl/GrGLSLGeometryProcessor.cpp
@@ -85,19 +85,19 @@
     SkASSERT(i == fInstalledTransforms.count());
 }
 
-void GrGLSLGeometryProcessor::setupPosition(GrGLSLVertexBuilder* vertBuilder,
-                                            GrGPArgs* gpArgs,
-                                            const char* posName) {
+void GrGLSLGeometryProcessor::writeOutputPosition(GrGLSLVertexBuilder* vertBuilder,
+                                                  GrGPArgs* gpArgs,
+                                                  const char* posName) {
     gpArgs->fPositionVar.set(kVec2f_GrSLType, "pos2");
     vertBuilder->codeAppendf("float2 %s = %s;", gpArgs->fPositionVar.c_str(), posName);
 }
 
-void GrGLSLGeometryProcessor::setupPosition(GrGLSLVertexBuilder* vertBuilder,
-                                            GrGLSLUniformHandler* uniformHandler,
-                                            GrGPArgs* gpArgs,
-                                            const char* posName,
-                                            const SkMatrix& mat,
-                                            UniformHandle* viewMatrixUniform) {
+void GrGLSLGeometryProcessor::writeOutputPosition(GrGLSLVertexBuilder* vertBuilder,
+                                                  GrGLSLUniformHandler* uniformHandler,
+                                                  GrGPArgs* gpArgs,
+                                                  const char* posName,
+                                                  const SkMatrix& mat,
+                                                  UniformHandle* viewMatrixUniform) {
     if (mat.isIdentity()) {
         gpArgs->fPositionVar.set(kVec2f_GrSLType, "pos2");
         vertBuilder->codeAppendf("float2 %s = %s;", gpArgs->fPositionVar.c_str(), posName);
diff --git a/src/gpu/glsl/GrGLSLGeometryProcessor.h b/src/gpu/glsl/GrGLSLGeometryProcessor.h
index 10a4aa8..17a6779 100644
--- a/src/gpu/glsl/GrGLSLGeometryProcessor.h
+++ b/src/gpu/glsl/GrGLSLGeometryProcessor.h
@@ -20,10 +20,10 @@
 class GrGLSLGeometryProcessor : public GrGLSLPrimitiveProcessor {
 public:
     /* Any general emit code goes in the base class emitCode.  Subclasses override onEmitCode */
-    void emitCode(EmitArgs&) override;
+    void emitCode(EmitArgs&) final;
 
 protected:
-    // A helper which subclasses can use if needed and used above in the default setTransformData().
+    // A helper which subclasses can use to upload coord transform matrices in setData().
     void setTransformDataHelper(const SkMatrix& localMatrix,
                                 const GrGLSLProgramDataManager& pdman,
                                 FPCoordTransformIter*);
@@ -39,7 +39,7 @@
                              posVar, localCoords, SkMatrix::I(), handler);
     }
 
-    // Emit pre-transformed coords as a vertex attribute per coord-transform.
+    // Emit pre-transformed coords as a varying per coord-transform.
     void emitTransforms(GrGLSLVertexBuilder*,
                         GrGLSLVaryingHandler*,
                         GrGLSLUniformHandler*,
@@ -49,19 +49,25 @@
                         FPCoordTransformHandler*);
 
     struct GrGPArgs {
-        // The variable used by a GP to store its position. It can be
-        // either a float2 or a float3 depending on the presence of perspective.
+        // Used to specify the output variable used by the GP to store its device position. It can
+        // either be a float2 or a float3 (in order to handle perspective). The subclass sets this
+        // in its onEmitCode().
         GrShaderVar fPositionVar;
     };
 
-    // Create the correct type of position variable given the CTM
-    void setupPosition(GrGLSLVertexBuilder*, GrGPArgs*, const char* posName);
-    void setupPosition(GrGLSLVertexBuilder*,
-                       GrGLSLUniformHandler* uniformHandler,
-                       GrGPArgs*,
-                       const char* posName,
-                       const SkMatrix& mat,
-                       UniformHandle* viewMatrixUniform);
+    // Helpers for adding code to write the transformed vertex position. The first simple version
+    // just writes a variable named by 'posName' into the position output variable with the
+    // assumption that the position is 2D. The second version transforms the input position by a
+    // view matrix and the output variable is 2D or 3D depending on whether the view matrix is
+    // perspective. Both versions declare the output position variable and will set
+    // GrGPArgs::fPositionVar.
+    void writeOutputPosition(GrGLSLVertexBuilder*, GrGPArgs*, const char* posName);
+    void writeOutputPosition(GrGLSLVertexBuilder*,
+                             GrGLSLUniformHandler* uniformHandler,
+                             GrGPArgs*,
+                             const char* posName,
+                             const SkMatrix& mat,
+                             UniformHandle* viewMatrixUniform);
 
     static uint32_t ComputePosKey(const SkMatrix& mat) {
         if (mat.isIdentity()) {
diff --git a/src/gpu/ops/GrAAConvexPathRenderer.cpp b/src/gpu/ops/GrAAConvexPathRenderer.cpp
index af32a14..cdb0c66 100644
--- a/src/gpu/ops/GrAAConvexPathRenderer.cpp
+++ b/src/gpu/ops/GrAAConvexPathRenderer.cpp
@@ -574,7 +574,7 @@
             GrGLSLPPFragmentBuilder* fragBuilder = args.fFragBuilder;
 
             // Setup position
-            this->setupPosition(vertBuilder, gpArgs, qe.fInPosition->fName);
+            this->writeOutputPosition(vertBuilder, gpArgs, qe.fInPosition->fName);
 
             // emit transforms
             this->emitTransforms(vertBuilder,
diff --git a/src/gpu/ops/GrDashOp.cpp b/src/gpu/ops/GrDashOp.cpp
index b00f816..14c15cb 100644
--- a/src/gpu/ops/GrDashOp.cpp
+++ b/src/gpu/ops/GrDashOp.cpp
@@ -896,7 +896,7 @@
     this->setupUniformColor(fragBuilder, uniformHandler, args.fOutputColor, &fColorUniform);
 
     // Setup position
-    this->setupPosition(vertBuilder, gpArgs, dce.inPosition()->fName);
+    this->writeOutputPosition(vertBuilder, gpArgs, dce.inPosition()->fName);
 
     // emit transforms
     this->emitTransforms(vertBuilder,
@@ -1100,7 +1100,7 @@
     this->setupUniformColor(fragBuilder, uniformHandler, args.fOutputColor, &fColorUniform);
 
     // Setup position
-    this->setupPosition(vertBuilder, gpArgs, de.inPosition()->fName);
+    this->writeOutputPosition(vertBuilder, gpArgs, de.inPosition()->fName);
 
     // emit transforms
     this->emitTransforms(vertBuilder,
diff --git a/src/gpu/ops/GrMSAAPathRenderer.cpp b/src/gpu/ops/GrMSAAPathRenderer.cpp
index 072692a..ef19367 100644
--- a/src/gpu/ops/GrMSAAPathRenderer.cpp
+++ b/src/gpu/ops/GrMSAAPathRenderer.cpp
@@ -145,8 +145,8 @@
             vsBuilder->codeAppendf("%s = %s;", uv.vsOut(), qp.inUV()->fName);
 
             // Setup position
-            this->setupPosition(vsBuilder, uniformHandler, gpArgs, qp.inPosition()->fName,
-                                qp.viewMatrix(), &fViewMatrixUniform);
+            this->writeOutputPosition(vsBuilder, uniformHandler, gpArgs, qp.inPosition()->fName,
+                                      qp.viewMatrix(), &fViewMatrixUniform);
 
             // emit transforms
             this->emitTransforms(vsBuilder, varyingHandler, uniformHandler, gpArgs->fPositionVar,
diff --git a/src/gpu/ops/GrOvalOpFactory.cpp b/src/gpu/ops/GrOvalOpFactory.cpp
index b175786..247a4ea 100644
--- a/src/gpu/ops/GrOvalOpFactory.cpp
+++ b/src/gpu/ops/GrOvalOpFactory.cpp
@@ -141,7 +141,7 @@
             varyingHandler->addPassThroughAttribute(cgp.fInColor, args.fOutputColor);
 
             // Setup position
-            this->setupPosition(vertBuilder, gpArgs, cgp.fInPosition->fName);
+            this->writeOutputPosition(vertBuilder, gpArgs, cgp.fInPosition->fName);
 
             // emit transforms
             this->emitTransforms(vertBuilder,
@@ -289,7 +289,7 @@
             varyingHandler->addPassThroughAttribute(egp.fInColor, args.fOutputColor);
 
             // Setup position
-            this->setupPosition(vertBuilder, gpArgs, egp.fInPosition->fName);
+            this->writeOutputPosition(vertBuilder, gpArgs, egp.fInPosition->fName);
 
             // emit transforms
             this->emitTransforms(vertBuilder,
@@ -429,12 +429,12 @@
             varyingHandler->addPassThroughAttribute(diegp.fInColor, args.fOutputColor);
 
             // Setup position
-            this->setupPosition(vertBuilder,
-                                uniformHandler,
-                                gpArgs,
-                                diegp.fInPosition->fName,
-                                diegp.fViewMatrix,
-                                &fViewMatrixUniform);
+            this->writeOutputPosition(vertBuilder,
+                                      uniformHandler,
+                                      gpArgs,
+                                      diegp.fInPosition->fName,
+                                      diegp.fViewMatrix,
+                                      &fViewMatrixUniform);
 
             // emit transforms
             this->emitTransforms(vertBuilder,
diff --git a/tests/PrimitiveProcessorTest.cpp b/tests/PrimitiveProcessorTest.cpp
index 14851a9..1e764e1 100644
--- a/tests/PrimitiveProcessorTest.cpp
+++ b/tests/PrimitiveProcessorTest.cpp
@@ -70,7 +70,7 @@
                     void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override {
                         const GP& gp = args.fGP.cast<GP>();
                         args.fVaryingHandler->emitAttributes(gp);
-                        this->setupPosition(args.fVertBuilder, gpArgs, gp.getAttrib(0).fName);
+                        this->writeOutputPosition(args.fVertBuilder, gpArgs, gp.getAttrib(0).fName);
                         GrGLSLPPFragmentBuilder* fragBuilder = args.fFragBuilder;
                         fragBuilder->codeAppendf("%s = float4(1);", args.fOutputColor);
                         fragBuilder->codeAppendf("%s = float4(1);", args.fOutputCoverage);