Migrate ccpr to the new bind/draw API

Change-Id: I4bdce03ea889b564c9bb8a7e48d95bf7873c4020
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276183
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
diff --git a/src/gpu/ccpr/GrVSCoverageProcessor.cpp b/src/gpu/ccpr/GrVSCoverageProcessor.cpp
index 0f40a12..ee3ce64 100644
--- a/src/gpu/ccpr/GrVSCoverageProcessor.cpp
+++ b/src/gpu/ccpr/GrVSCoverageProcessor.cpp
@@ -7,7 +7,7 @@
 
 #include "src/gpu/ccpr/GrVSCoverageProcessor.h"
 
-#include "src/gpu/GrMesh.h"
+#include "src/gpu/GrOpsRenderPass.h"
 #include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
 #include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
@@ -452,7 +452,9 @@
     f->codeAppendf("%s = half4(1);", args.fOutputCoverage);
 }
 
-void GrVSCoverageProcessor::reset(PrimitiveType primitiveType, GrResourceProvider* rp) {
+void GrVSCoverageProcessor::reset(PrimitiveType primitiveType, int subpassIdx,
+                                  GrResourceProvider* rp) {
+    SkASSERT(subpassIdx == 0);
     const GrCaps& caps = *rp->caps();
 
     fPrimitiveType = primitiveType;
@@ -530,16 +532,17 @@
     }
 }
 
-void GrVSCoverageProcessor::appendMesh(sk_sp<const GrGpuBuffer> instanceBuffer, int instanceCount,
-                                       int baseInstance, SkTArray<GrMesh>* out) const {
+void GrVSCoverageProcessor::bindBuffers(GrOpsRenderPass* renderPass,
+                                        const GrBuffer* instanceBuffer) const {
     SkASSERT(fTriangleType == GrPrimitiveType::kTriangles ||
              fTriangleType == GrPrimitiveType::kTriangleStrip);
+    renderPass->bindBuffers(fIndexBuffer.get(), instanceBuffer, fVertexBuffer.get(),
+                            GrPrimitiveRestart(GrPrimitiveType::kTriangleStrip == fTriangleType));
+}
 
-    GrMesh& mesh = out->push_back();
-    auto primitiveRestart = GrPrimitiveRestart(GrPrimitiveType::kTriangleStrip == fTriangleType);
-    mesh.setIndexedInstanced(fIndexBuffer, fNumIndicesPerInstance, std::move(instanceBuffer),
-                             instanceCount, baseInstance, primitiveRestart);
-    mesh.setVertexData(fVertexBuffer, 0);
+void GrVSCoverageProcessor::drawInstances(GrOpsRenderPass* renderPass, int instanceCount,
+                                          int baseInstance) const {
+    renderPass->drawIndexedInstanced(fNumIndicesPerInstance, 0, instanceCount, baseInstance, 0);
 }
 
 GrGLSLPrimitiveProcessor* GrVSCoverageProcessor::onCreateGLSLInstance(