Tighten up min and max vertex indices passed to GrTextureOp's meshes
Change-Id: Ie06c763f8677c395fdc4995bf78b9aff95040764
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252192
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/ops/GrQuadPerEdgeAA.cpp b/src/gpu/ops/GrQuadPerEdgeAA.cpp
index 52b17c6..8735ec1 100644
--- a/src/gpu/ops/GrQuadPerEdgeAA.cpp
+++ b/src/gpu/ops/GrQuadPerEdgeAA.cpp
@@ -166,21 +166,26 @@
SkASSERT(indexBuffer);
int baseIndex, numIndicesToDraw;
+ int minVertex, maxVertex;
if (spec.indexBufferOption() == IndexBufferOption::kPictureFramed) {
SkASSERT(runningQuadCount + quadsInDraw <= GrResourceProvider::MaxNumAAQuads());
// AA uses 8 vertices and 30 indices per quad, basically nested rectangles
baseIndex = runningQuadCount * GrResourceProvider::NumIndicesPerAAQuad();
numIndicesToDraw = quadsInDraw * GrResourceProvider::NumIndicesPerAAQuad();
+ minVertex = runningQuadCount * GrResourceProvider::NumVertsPerAAQuad();
+ maxVertex = (runningQuadCount + quadsInDraw) * GrResourceProvider::NumVertsPerAAQuad();
} else {
SkASSERT(runningQuadCount + quadsInDraw <= GrResourceProvider::MaxNumNonAAQuads());
// Non-AA uses 4 vertices and 6 indices per quad
baseIndex = runningQuadCount * GrResourceProvider::NumIndicesPerNonAAQuad();
numIndicesToDraw = quadsInDraw * GrResourceProvider::NumIndicesPerNonAAQuad();
+ minVertex = runningQuadCount * GrResourceProvider::NumVertsPerNonAAQuad();
+ maxVertex = (runningQuadCount + quadsInDraw) * GrResourceProvider::NumVertsPerNonAAQuad();
}
mesh->setPrimitiveType(GrPrimitiveType::kTriangles);
- mesh->setIndexed(std::move(indexBuffer), numIndicesToDraw, baseIndex, 0, maxVerts-1,
+ mesh->setIndexed(std::move(indexBuffer), numIndicesToDraw, baseIndex, minVertex, maxVertex,
GrPrimitiveRestart::kNo);
mesh->setVertexData(std::move(vertexBuffer), absVertBufferOffset);
}