Move creation of AAQuadIndexBuffer to GrResourceProvider
This CL also increases the AAQuadIndexBuffer's size and centralizes the handling of index buffer constants.
Change-Id: I4fb679a1c5e4076cf249b612f798e9bf5a38cd0b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251244
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/ops/GrRegionOp.cpp b/src/gpu/ops/GrRegionOp.cpp
index 6d48a33..5f301a2 100644
--- a/src/gpu/ops/GrRegionOp.cpp
+++ b/src/gpu/ops/GrRegionOp.cpp
@@ -18,9 +18,6 @@
#include "src/gpu/ops/GrMeshDrawOp.h"
#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
-static const int kVertsPerInstance = 4;
-static const int kIndicesPerInstance = 6;
-
static sk_sp<GrGeometryProcessor> make_gp(const GrShaderCaps* shaderCaps,
const SkMatrix& viewMatrix,
bool wideColor) {
@@ -113,14 +110,17 @@
if (!numRects) {
return;
}
- sk_sp<const GrGpuBuffer> indexBuffer = target->resourceProvider()->refQuadIndexBuffer();
+ auto indexBuffer = target->resourceProvider()->refNonAAQuadIndexBuffer();
if (!indexBuffer) {
SkDebugf("Could not allocate indices\n");
return;
}
PatternHelper helper(target, GrPrimitiveType::kTriangles, gp->vertexStride(),
- std::move(indexBuffer), kVertsPerInstance, kIndicesPerInstance,
- numRects);
+ std::move(indexBuffer),
+ GrResourceProvider::NumVertsPerNonAAQuad(),
+ GrResourceProvider::NumIndicesPerNonAAQuad(),
+ numRects,
+ GrResourceProvider::MaxNumNonAAQuads());
GrVertexWriter vertices{helper.vertices()};
if (!vertices.fPtr) {
SkDebugf("Could not allocate vertices\n");