Remove GrMesh::setVertexData
Fuses the relevant functionality into the set() calls.
Change-Id: I3a764219425c35967942366c60a6b9ee6ec48e11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276836
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
diff --git a/src/gpu/ops/GrAAConvexPathRenderer.cpp b/src/gpu/ops/GrAAConvexPathRenderer.cpp
index 0048d84..76724ff 100644
--- a/src/gpu/ops/GrAAConvexPathRenderer.cpp
+++ b/src/gpu/ops/GrAAConvexPathRenderer.cpp
@@ -837,8 +837,8 @@
for (int j = 0; j < draws.count(); ++j) {
const Draw& draw = draws[j];
meshes[j].setIndexed(indexBuffer, draw.fIndexCnt, firstIndex, 0,
- draw.fVertexCnt - 1, GrPrimitiveRestart::kNo);
- meshes[j].setVertexData(vertexBuffer, firstVertex);
+ draw.fVertexCnt - 1, GrPrimitiveRestart::kNo, vertexBuffer,
+ firstVertex);
firstIndex += draw.fIndexCnt;
firstVertex += draw.fVertexCnt;
}
diff --git a/src/gpu/ops/GrAAHairLinePathRenderer.cpp b/src/gpu/ops/GrAAHairLinePathRenderer.cpp
index 020dbba..7e98529 100644
--- a/src/gpu/ops/GrAAHairLinePathRenderer.cpp
+++ b/src/gpu/ops/GrAAHairLinePathRenderer.cpp
@@ -1106,9 +1106,9 @@
geometryProcessorLocalM);
GrMesh* mesh = target->allocMesh();
- mesh->setIndexedPatterned(quadsIndexBuffer, kIdxsPerQuad, kQuadNumVertices, quadCount,
- kQuadsNumInIdxBuffer);
- mesh->setVertexData(vertexBuffer, firstVertex);
+ mesh->setIndexedPatterned(quadsIndexBuffer, kIdxsPerQuad, quadCount,
+ kQuadsNumInIdxBuffer, vertexBuffer, kQuadNumVertices,
+ firstVertex);
target->recordDraw(quadGP, mesh, 1, GrPrimitiveType::kTriangles);
firstVertex += quadCount * kQuadNumVertices;
}
@@ -1119,9 +1119,9 @@
geometryProcessorLocalM);
GrMesh* mesh = target->allocMesh();
- mesh->setIndexedPatterned(std::move(quadsIndexBuffer), kIdxsPerQuad, kQuadNumVertices,
- conicCount, kQuadsNumInIdxBuffer);
- mesh->setVertexData(std::move(vertexBuffer), firstVertex);
+ mesh->setIndexedPatterned(std::move(quadsIndexBuffer), kIdxsPerQuad, conicCount,
+ kQuadsNumInIdxBuffer, std::move(vertexBuffer),
+ kQuadNumVertices, firstVertex);
target->recordDraw(conicGP, mesh, 1, GrPrimitiveType::kTriangles);
}
}
diff --git a/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp b/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp
index 40332ba..2581fc7b 100644
--- a/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp
+++ b/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp
@@ -251,8 +251,7 @@
memcpy(idxs, indices, indexCount * sizeof(uint16_t));
GrMesh* mesh = target->allocMesh();
mesh->setIndexed(std::move(indexBuffer), indexCount, firstIndex, 0, vertexCount - 1,
- GrPrimitiveRestart::kNo);
- mesh->setVertexData(std::move(vertexBuffer), firstVertex);
+ GrPrimitiveRestart::kNo, std::move(vertexBuffer), firstVertex);
fMeshes.push_back(mesh);
}
diff --git a/src/gpu/ops/GrAtlasTextOp.cpp b/src/gpu/ops/GrAtlasTextOp.cpp
index 594d68c..b40bd0d 100644
--- a/src/gpu/ops/GrAtlasTextOp.cpp
+++ b/src/gpu/ops/GrAtlasTextOp.cpp
@@ -512,9 +512,9 @@
}
int maxGlyphsPerDraw = static_cast<int>(flushInfo->fIndexBuffer->size() / sizeof(uint16_t) / 6);
GrMesh* mesh = target->allocMesh();
- mesh->setIndexedPatterned(flushInfo->fIndexBuffer, kIndicesPerGlyph, kVerticesPerGlyph,
- flushInfo->fGlyphsToFlush, maxGlyphsPerDraw);
- mesh->setVertexData(flushInfo->fVertexBuffer, flushInfo->fVertexOffset);
+ mesh->setIndexedPatterned(flushInfo->fIndexBuffer, kIndicesPerGlyph, flushInfo->fGlyphsToFlush,
+ maxGlyphsPerDraw, flushInfo->fVertexBuffer, kVerticesPerGlyph,
+ flushInfo->fVertexOffset);
target->recordDraw(flushInfo->fGeometryProcessor, mesh, 1, flushInfo->fFixedDynamicState,
nullptr, GrPrimitiveType::kTriangles);
flushInfo->fVertexOffset += kVerticesPerGlyph * flushInfo->fGlyphsToFlush;
diff --git a/src/gpu/ops/GrDefaultPathRenderer.cpp b/src/gpu/ops/GrDefaultPathRenderer.cpp
index 65a66e4..0b676c2 100644
--- a/src/gpu/ops/GrDefaultPathRenderer.cpp
+++ b/src/gpu/ops/GrDefaultPathRenderer.cpp
@@ -274,12 +274,12 @@
if (this->isIndexed() ? SkToBool(indexCount) : SkToBool(vertexCount)) {
mesh = fTarget->allocMesh();
if (!this->isIndexed()) {
- mesh->setNonIndexedNonInstanced(vertexCount);
+ mesh->set(std::move(fVertexBuffer), vertexCount, fFirstVertex);
} else {
mesh->setIndexed(std::move(fIndexBuffer), indexCount, fFirstIndex, 0,
- vertexCount - 1, GrPrimitiveRestart::kNo);
+ vertexCount - 1, GrPrimitiveRestart::kNo, std::move(fVertexBuffer),
+ fFirstVertex);
}
- mesh->setVertexData(std::move(fVertexBuffer), fFirstVertex);
}
fTarget->putBackIndices((size_t)(fIndicesInChunk - indexCount));
diff --git a/src/gpu/ops/GrDrawVerticesOp.cpp b/src/gpu/ops/GrDrawVerticesOp.cpp
index c200367..6adae7b 100644
--- a/src/gpu/ops/GrDrawVerticesOp.cpp
+++ b/src/gpu/ops/GrDrawVerticesOp.cpp
@@ -342,11 +342,10 @@
fMesh = target->allocMesh();
if (this->isIndexed()) {
fMesh->setIndexed(std::move(indexBuffer), fIndexCount, firstIndex, 0, fVertexCount - 1,
- GrPrimitiveRestart::kNo);
+ GrPrimitiveRestart::kNo, std::move(vertexBuffer), firstVertex);
} else {
- fMesh->setNonIndexedNonInstanced(fVertexCount);
+ fMesh->set(std::move(vertexBuffer), fVertexCount, firstVertex);
}
- fMesh->setVertexData(std::move(vertexBuffer), firstVertex);
}
void DrawVerticesOp::onExecute(GrOpFlushState* flushState, const SkRect& chainBounds) {
diff --git a/src/gpu/ops/GrMeshDrawOp.cpp b/src/gpu/ops/GrMeshDrawOp.cpp
index 0cdc857..c66166f 100644
--- a/src/gpu/ops/GrMeshDrawOp.cpp
+++ b/src/gpu/ops/GrMeshDrawOp.cpp
@@ -73,9 +73,9 @@
SkASSERT(maxRepetitions ==
static_cast<int>(indexBuffer->size() / (sizeof(uint16_t) * indicesPerRepetition)));
- fMesh->setIndexedPatterned(std::move(indexBuffer), indicesPerRepetition, verticesPerRepetition,
- repeatCount, maxRepetitions);
- fMesh->setVertexData(std::move(vertexBuffer), firstVertex);
+ fMesh->setIndexedPatterned(std::move(indexBuffer), indicesPerRepetition, repeatCount,
+ maxRepetitions, std::move(vertexBuffer), verticesPerRepetition,
+ firstVertex);
}
void GrMeshDrawOp::PatternHelper::recordDraw(Target* target, const GrGeometryProcessor* gp) const {
diff --git a/src/gpu/ops/GrOvalOpFactory.cpp b/src/gpu/ops/GrOvalOpFactory.cpp
index 7405dda..1fb885b 100644
--- a/src/gpu/ops/GrOvalOpFactory.cpp
+++ b/src/gpu/ops/GrOvalOpFactory.cpp
@@ -1420,8 +1420,7 @@
fMesh = target->allocMesh();
fMesh->setIndexed(std::move(indexBuffer), fIndexCount, firstIndex, 0, fVertCount - 1,
- GrPrimitiveRestart::kNo);
- fMesh->setVertexData(std::move(vertexBuffer), firstVertex);
+ GrPrimitiveRestart::kNo, std::move(vertexBuffer), firstVertex);
}
void onExecute(GrOpFlushState* flushState, const SkRect& chainBounds) override {
@@ -1743,8 +1742,7 @@
fMesh = target->allocMesh();
fMesh->setIndexed(std::move(indexBuffer), fIndexCount, firstIndex, 0, fVertCount - 1,
- GrPrimitiveRestart::kNo);
- fMesh->setVertexData(std::move(vertexBuffer), firstVertex);
+ GrPrimitiveRestart::kNo, std::move(vertexBuffer), firstVertex);
}
void onExecute(GrOpFlushState* flushState, const SkRect& chainBounds) override {
@@ -2755,8 +2753,7 @@
fMesh = target->allocMesh();
fMesh->setIndexed(std::move(indexBuffer), fIndexCount, firstIndex, 0, fVertCount - 1,
- GrPrimitiveRestart::kNo);
- fMesh->setVertexData(std::move(vertexBuffer), firstVertex);
+ GrPrimitiveRestart::kNo, std::move(vertexBuffer), firstVertex);
}
void onExecute(GrOpFlushState* flushState, const SkRect& chainBounds) override {
diff --git a/src/gpu/ops/GrQuadPerEdgeAA.cpp b/src/gpu/ops/GrQuadPerEdgeAA.cpp
index ee2a694..42162f8 100644
--- a/src/gpu/ops/GrQuadPerEdgeAA.cpp
+++ b/src/gpu/ops/GrQuadPerEdgeAA.cpp
@@ -400,11 +400,9 @@
if (spec.indexBufferOption() == IndexBufferOption::kTriStrips) {
SkASSERT(!indexBuffer);
-
- mesh->setNonIndexedNonInstanced(4);
int offset = absVertBufferOffset +
runningQuadCount * GrResourceProvider::NumVertsPerNonAAQuad();
- mesh->setVertexData(std::move(vertexBuffer), offset);
+ mesh->set(std::move(vertexBuffer), 4, offset);
return;
}
@@ -434,9 +432,8 @@
// preferred.
int offset = absVertBufferOffset + runningQuadCount * numVertsPerQuad;
- mesh->setIndexedPatterned(std::move(indexBuffer), numIndicesPerQuad,
- numVertsPerQuad, quadsInDraw, maxNumQuads);
- mesh->setVertexData(std::move(vertexBuffer), offset);
+ mesh->setIndexedPatterned(std::move(indexBuffer), numIndicesPerQuad, quadsInDraw,
+ maxNumQuads, std::move(vertexBuffer), numVertsPerQuad, offset);
} else {
int baseIndex = runningQuadCount * numIndicesPerQuad;
int numIndicesToDraw = quadsInDraw * numIndicesPerQuad;
@@ -445,8 +442,8 @@
int maxVertex = (runningQuadCount + quadsInDraw) * numVertsPerQuad;
mesh->setIndexed(std::move(indexBuffer), numIndicesToDraw,
- baseIndex, minVertex, maxVertex, GrPrimitiveRestart::kNo);
- mesh->setVertexData(std::move(vertexBuffer), absVertBufferOffset);
+ baseIndex, minVertex, maxVertex, GrPrimitiveRestart::kNo,
+ std::move(vertexBuffer), absVertBufferOffset);
}
}
diff --git a/src/gpu/ops/GrShadowRRectOp.cpp b/src/gpu/ops/GrShadowRRectOp.cpp
index cdc8eda..119addd 100644
--- a/src/gpu/ops/GrShadowRRectOp.cpp
+++ b/src/gpu/ops/GrShadowRRectOp.cpp
@@ -616,8 +616,7 @@
fMesh = target->allocMesh();
fMesh->setIndexed(std::move(indexBuffer), fIndexCount, firstIndex, 0, fVertCount - 1,
- GrPrimitiveRestart::kNo);
- fMesh->setVertexData(std::move(vertexBuffer), firstVertex);
+ GrPrimitiveRestart::kNo, std::move(vertexBuffer), firstVertex);
}
void onExecute(GrOpFlushState* flushState, const SkRect& chainBounds) override {
diff --git a/src/gpu/ops/GrSmallPathRenderer.cpp b/src/gpu/ops/GrSmallPathRenderer.cpp
index 2dbbf37..d3d4df6 100644
--- a/src/gpu/ops/GrSmallPathRenderer.cpp
+++ b/src/gpu/ops/GrSmallPathRenderer.cpp
@@ -820,10 +820,11 @@
GrMesh* mesh = target->allocMesh();
mesh->setIndexedPatterned(flushInfo->fIndexBuffer,
GrResourceProvider::NumIndicesPerNonAAQuad(),
- GrResourceProvider::NumVertsPerNonAAQuad(),
flushInfo->fInstancesToFlush,
- GrResourceProvider::MaxNumNonAAQuads());
- mesh->setVertexData(flushInfo->fVertexBuffer, flushInfo->fVertexOffset);
+ GrResourceProvider::MaxNumNonAAQuads(),
+ flushInfo->fVertexBuffer,
+ GrResourceProvider::NumVertsPerNonAAQuad(),
+ flushInfo->fVertexOffset);
target->recordDraw(flushInfo->fGeometryProcessor, mesh, 1,
flushInfo->fFixedDynamicState, nullptr, GrPrimitiveType::kTriangles);
flushInfo->fVertexOffset += GrResourceProvider::NumVertsPerNonAAQuad() *
diff --git a/src/gpu/ops/GrStrokeRectOp.cpp b/src/gpu/ops/GrStrokeRectOp.cpp
index 639423e..7bb9d29 100644
--- a/src/gpu/ops/GrStrokeRectOp.cpp
+++ b/src/gpu/ops/GrStrokeRectOp.cpp
@@ -242,8 +242,7 @@
}
fMesh = target->allocMesh();
- fMesh->setNonIndexedNonInstanced(vertexCount);
- fMesh->setVertexData(std::move(vertexBuffer), firstVertex);
+ fMesh->set(std::move(vertexBuffer), vertexCount, firstVertex);
}
void onExecute(GrOpFlushState* flushState, const SkRect& chainBounds) override {
diff --git a/src/gpu/ops/GrTessellatingPathRenderer.cpp b/src/gpu/ops/GrTessellatingPathRenderer.cpp
index 97cdb87..a39cb00 100644
--- a/src/gpu/ops/GrTessellatingPathRenderer.cpp
+++ b/src/gpu/ops/GrTessellatingPathRenderer.cpp
@@ -382,8 +382,7 @@
void createMesh(Target* target, sk_sp<const GrBuffer> vb, int firstVertex, int count) {
fMesh = target->allocMesh();
- fMesh->setNonIndexedNonInstanced(count);
- fMesh->setVertexData(std::move(vb), firstVertex);
+ fMesh->set(std::move(vb), count, firstVertex);
}
void onExecute(GrOpFlushState* flushState, const SkRect& chainBounds) override {