Batch better in GrSmallPathRenderer and add perspective support.

Minor optimization to text regen also snuck in.

Bug: skia:
Change-Id: I0c5d97defdcf60b9ce663548c056db0e8bf7149b
Reviewed-on: https://skia-review.googlesource.com/57942
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/text/GrAtlasTextBlob_regenInOp.cpp b/src/gpu/text/GrAtlasTextBlob_regenInOp.cpp
index 778c9fa..ecd8d52 100644
--- a/src/gpu/text/GrAtlasTextBlob_regenInOp.cpp
+++ b/src/gpu/text/GrAtlasTextBlob_regenInOp.cpp
@@ -166,6 +166,8 @@
     }
 
     bool brokenRun = false;
+    intptr_t vertex = reinterpret_cast<intptr_t>(fVertices);
+    vertex += info->vertexStartIndex();
     for (int glyphIdx = 0; glyphIdx < glyphCount; glyphIdx++) {
         GrGlyph* glyph = nullptr;
         if (regenTexCoords) {
@@ -196,12 +198,10 @@
                                                     target->nextDrawToken());
         }
 
-        intptr_t vertex = reinterpret_cast<intptr_t>(fVertices);
-        vertex += info->vertexStartIndex();
-        vertex += vertexStride * glyphIdx * GrAtlasTextOp::kVerticesPerGlyph;
         regen_vertices<regenPos, regenCol, regenTexCoords>(vertex, glyph, vertexStride,
                                                            info->drawAsDistanceFields(), transX,
                                                            transY, color);
+        vertex += vertexStride * GrAtlasTextOp::kVerticesPerGlyph;
         helper->incGlyphCount();
     }