Update GrTriangulator to count curves

Now it returns the actual curve count instead of an "isLinear" bool.

Change-Id: Iaf2d5c6d96a59972bc7481c17580f2ac5e4b0a25
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284979
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
diff --git a/src/gpu/ops/GrTriangulatingPathRenderer.cpp b/src/gpu/ops/GrTriangulatingPathRenderer.cpp
index 0347f4e..4a00ada 100644
--- a/src/gpu/ops/GrTriangulatingPathRenderer.cpp
+++ b/src/gpu/ops/GrTriangulatingPathRenderer.cpp
@@ -280,24 +280,25 @@
             return;
         }
         vmi.mapRect(&clipBounds);
-        bool isLinear;
+        int numCountedCurves;
         bool canMapVB = GrCaps::kNone_MapFlags != target->caps().mapBufferFlags();
         StaticVertexAllocator allocator(rp, canMapVB);
-        int count = GrTriangulator::PathToTriangles(getPath(), tol, clipBounds, &allocator,
-                                                    GrTriangulator::Mode::kNormal, &isLinear);
-        if (count == 0) {
+        int vertexCount = GrTriangulator::PathToTriangles(getPath(), tol, clipBounds, &allocator,
+                                                          GrTriangulator::Mode::kNormal,
+                                                          &numCountedCurves);
+        if (vertexCount == 0) {
             return;
         }
         sk_sp<GrGpuBuffer> vb = allocator.detachVertexBuffer();
         TessInfo info;
-        info.fTolerance = isLinear ? 0 : tol;
-        info.fCount = count;
+        info.fTolerance = (numCountedCurves == 0) ? 0 : tol;
+        info.fCount = vertexCount;
         fShape.addGenIDChangeListener(
                 sk_make_sp<UniqueKeyInvalidator>(key, target->contextUniqueID()));
         key.setCustomData(SkData::MakeWithCopy(&info, sizeof(info)));
         rp->assignUniqueKeyToResource(key, vb.get());
 
-        this->createMesh(target, std::move(vb), 0, count);
+        this->createMesh(target, std::move(vb), 0, vertexCount);
     }
 
     void drawAA(Target* target) {
@@ -311,14 +312,15 @@
         SkScalar tol = GrPathUtils::kDefaultTolerance;
         sk_sp<const GrBuffer> vertexBuffer;
         int firstVertex;
-        bool isLinear;
+        int numCountedCurves;
         GrEagerDynamicVertexAllocator allocator(target, &vertexBuffer, &firstVertex);
-        int count = GrTriangulator::PathToTriangles(path, tol, clipBounds, &allocator,
-                                                    GrTriangulator::Mode::kEdgeAntialias, &isLinear);
-        if (count == 0) {
+        int vertexCount = GrTriangulator::PathToTriangles(path, tol, clipBounds, &allocator,
+                                                          GrTriangulator::Mode::kEdgeAntialias,
+                                                          &numCountedCurves);
+        if (vertexCount == 0) {
             return;
         }
-        this->createMesh(target, std::move(vertexBuffer), firstVertex, count);
+        this->createMesh(target, std::move(vertexBuffer), firstVertex, vertexCount);
     }
 
     GrProgramInfo* programInfo() override { return fProgramInfo; }