Skip to content

Commit 8e083ee

Browse files
rphilliSkia Commit-Bot
authored andcommitted
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>
1 parent ef7677f commit 8e083ee

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/gpu/ops/GrQuadPerEdgeAA.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,21 +166,26 @@ void ConfigureMesh(GrMesh* mesh, const VertexSpec& spec,
166166
SkASSERT(indexBuffer);
167167

168168
int baseIndex, numIndicesToDraw;
169+
int minVertex, maxVertex;
169170

170171
if (spec.indexBufferOption() == IndexBufferOption::kPictureFramed) {
171172
SkASSERT(runningQuadCount + quadsInDraw <= GrResourceProvider::MaxNumAAQuads());
172173
// AA uses 8 vertices and 30 indices per quad, basically nested rectangles
173174
baseIndex = runningQuadCount * GrResourceProvider::NumIndicesPerAAQuad();
174175
numIndicesToDraw = quadsInDraw * GrResourceProvider::NumIndicesPerAAQuad();
176+
minVertex = runningQuadCount * GrResourceProvider::NumVertsPerAAQuad();
177+
maxVertex = (runningQuadCount + quadsInDraw) * GrResourceProvider::NumVertsPerAAQuad();
175178
} else {
176179
SkASSERT(runningQuadCount + quadsInDraw <= GrResourceProvider::MaxNumNonAAQuads());
177180
// Non-AA uses 4 vertices and 6 indices per quad
178181
baseIndex = runningQuadCount * GrResourceProvider::NumIndicesPerNonAAQuad();
179182
numIndicesToDraw = quadsInDraw * GrResourceProvider::NumIndicesPerNonAAQuad();
183+
minVertex = runningQuadCount * GrResourceProvider::NumVertsPerNonAAQuad();
184+
maxVertex = (runningQuadCount + quadsInDraw) * GrResourceProvider::NumVertsPerNonAAQuad();
180185
}
181186

182187
mesh->setPrimitiveType(GrPrimitiveType::kTriangles);
183-
mesh->setIndexed(std::move(indexBuffer), numIndicesToDraw, baseIndex, 0, maxVerts-1,
188+
mesh->setIndexed(std::move(indexBuffer), numIndicesToDraw, baseIndex, minVertex, maxVertex,
184189
GrPrimitiveRestart::kNo);
185190
mesh->setVertexData(std::move(vertexBuffer), absVertBufferOffset);
186191
}

0 commit comments

Comments
 (0)