Use vertex writer for per-edge aa; remove templated tessellate function

Bug: skia:
Change-Id: I5e1014cea7bb869636e6c706f54a2145e58214fd
Reviewed-on: https://skia-review.googlesource.com/c/171229
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
diff --git a/src/gpu/GrQuad.h b/src/gpu/GrQuad.h
index 107fe25..5f62682e 100644
--- a/src/gpu/GrQuad.h
+++ b/src/gpu/GrQuad.h
@@ -24,10 +24,12 @@
 //     ws() == all ones.
 //  3. Is a perspective quad - the matrix has perspective, subsuming all previous quad types.
 enum class GrQuadType {
-    kRect_QuadType,
-    kStandard_QuadType,
-    kPerspective_QuadType
+    kRect,
+    kStandard,
+    kPerspective,
+    kLast = kPerspective
 };
+static const int kGrQuadTypeCount = static_cast<int>(GrQuadType::kLast) + 1;
 
 // If an SkRect is transformed by this matrix, what class of quad is required to represent it. Since
 // quadType() is only provided on Gr[Persp]Quad in debug builds, production code should use this
@@ -35,7 +37,7 @@
 GrQuadType GrQuadTypeForTransformedRect(const SkMatrix& matrix);
 
 // Resolve disagreements between the overall requested AA type and the per-edge quad AA flags.
-// knownQuadType must have come from GrQuadtypeForTransformedRect with the matrix that created the
+// knownQuadType must have come from GrQuadTypeForTransformedRect with the matrix that created the
 // provided quad. Both outAAType and outEdgeFlags will be updated.
 template <typename Q>
 void GrResolveAATypeForQuad(GrAAType requestedAAType, GrQuadAAFlags requestedEdgeFlags,