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/bench/VertexColorSpaceBench.cpp b/bench/VertexColorSpaceBench.cpp
index 6856445..d73ceed 100644
--- a/bench/VertexColorSpaceBench.cpp
+++ b/bench/VertexColorSpaceBench.cpp
@@ -253,8 +253,7 @@
}
fMesh = target->allocMesh();
- fMesh->setNonIndexedNonInstanced(kVertexCount);
- fMesh->setVertexData(std::move(vertexBuffer), firstVertex);
+ fMesh->set(std::move(vertexBuffer), kVertexCount, firstVertex);
}
void onExecute(GrOpFlushState* flushState, const SkRect& chainBounds) override {
diff --git a/gm/clockwise.cpp b/gm/clockwise.cpp
index 1a0753f..e8da08c 100644
--- a/gm/clockwise.cpp
+++ b/gm/clockwise.cpp
@@ -29,7 +29,6 @@
#include "src/gpu/GrGeometryProcessor.h"
#include "src/gpu/GrGpuBuffer.h"
#include "src/gpu/GrMemoryPool.h"
-#include "src/gpu/GrMesh.h"
#include "src/gpu/GrOpFlushState.h"
#include "src/gpu/GrOpsRenderPass.h"
#include "src/gpu/GrPipeline.h"
@@ -218,12 +217,10 @@
fProgramInfo = this->createProgramInfo(flushState);
}
- GrMesh mesh;
- mesh.setNonIndexedNonInstanced(4);
- mesh.setVertexData(std::move(fVertexBuffer));
-
- flushState->opsRenderPass()->bindPipeline(*fProgramInfo, SkRect::MakeXYWH(0, fY, 100, 100));
- flushState->opsRenderPass()->drawMeshes(*fProgramInfo, &mesh, 1);
+ GrOpsRenderPass* renderPass = flushState->opsRenderPass();
+ renderPass->bindPipeline(*fProgramInfo, SkRect::MakeXYWH(0, fY, 100, 100));
+ renderPass->bindBuffers(nullptr, nullptr, fVertexBuffer.get());
+ renderPass->draw(4, 0);
}
sk_sp<GrBuffer> fVertexBuffer;
diff --git a/gm/fwidth_squircle.cpp b/gm/fwidth_squircle.cpp
index 38dca23..ee34bc8 100644
--- a/gm/fwidth_squircle.cpp
+++ b/gm/fwidth_squircle.cpp
@@ -23,7 +23,6 @@
#include "src/gpu/GrGeometryProcessor.h"
#include "src/gpu/GrGpuBuffer.h"
#include "src/gpu/GrMemoryPool.h"
-#include "src/gpu/GrMesh.h"
#include "src/gpu/GrOpFlushState.h"
#include "src/gpu/GrOpsRenderPass.h"
#include "src/gpu/GrPipeline.h"
@@ -226,12 +225,10 @@
fProgramInfo = this->createProgramInfo(flushState);
}
- GrMesh mesh;
- mesh.setNonIndexedNonInstanced(4);
- mesh.setVertexData(std::move(fVertexBuffer));
-
- flushState->opsRenderPass()->bindPipeline(*fProgramInfo, SkRect::MakeIWH(kWidth, kHeight));
- flushState->opsRenderPass()->drawMeshes(*fProgramInfo, &mesh, 1);
+ GrOpsRenderPass* renderPass = flushState->opsRenderPass();
+ renderPass->bindPipeline(*fProgramInfo, SkRect::MakeIWH(kWidth, kHeight));
+ renderPass->bindBuffers(nullptr, nullptr, fVertexBuffer.get());
+ renderPass->draw(4, 0);
}
diff --git a/gm/tessellation.cpp b/gm/tessellation.cpp
index 184b98b..a2b025a 100644
--- a/gm/tessellation.cpp
+++ b/gm/tessellation.cpp
@@ -10,7 +10,6 @@
#include "src/gpu/GrCaps.h"
#include "src/gpu/GrContextPriv.h"
#include "src/gpu/GrMemoryPool.h"
-#include "src/gpu/GrMesh.h"
#include "src/gpu/GrOpFlushState.h"
#include "src/gpu/GrOpsRenderPass.h"
#include "src/gpu/GrPipeline.h"
@@ -313,7 +312,6 @@
state->drawOpArgs().outputSwizzle());
GrPipeline::FixedDynamicState fixedDynamicState;
- GrMesh mesh;
int tessellationPatchVertexCount;
std::unique_ptr<GrGeometryProcessor> shader;
if (fTriPositions) {
@@ -321,14 +319,11 @@
return;
}
tessellationPatchVertexCount = 3;
- mesh.setNonIndexedNonInstanced(3);
- mesh.setVertexData(fVertexBuffer, fBaseVertex);
shader = std::make_unique<TessellationTestTriShader>(fViewMatrix);
} else {
// Use a mismatched number of vertices in the input patch vs output.
// (The tessellation control shader will output one vertex per patch.)
tessellationPatchVertexCount = 5;
- mesh.setNonIndexedNonInstanced(5);
shader = std::make_unique<TessellationTestRectShader>(fViewMatrix);
}
@@ -337,8 +332,10 @@
&pipeline, shader.get(), &fixedDynamicState, nullptr, 0,
GrPrimitiveType::kPatches, tessellationPatchVertexCount);
- state->opsRenderPass()->bindPipeline(programInfo, SkRect::MakeIWH(kWidth, kHeight));
- state->opsRenderPass()->drawMeshes(programInfo, &mesh, 1);
+ GrOpsRenderPass* renderPass = state->opsRenderPass();
+ renderPass->bindPipeline(programInfo, SkRect::MakeIWH(kWidth, kHeight));
+ renderPass->bindBuffers(nullptr, nullptr, fVertexBuffer.get());
+ renderPass->draw(tessellationPatchVertexCount, fBaseVertex);
}
const SkMatrix fViewMatrix;
diff --git a/src/gpu/GrMesh.h b/src/gpu/GrMesh.h
index c47b986..5104ec9 100644
--- a/src/gpu/GrMesh.h
+++ b/src/gpu/GrMesh.h
@@ -23,17 +23,16 @@
class GrMesh {
public:
const GrBuffer* indexBuffer() const { return fIndexBuffer.get(); }
- GrPrimitiveRestart primitiveRestart() const { return fPrimitiveRestart; }
const GrBuffer* vertexBuffer() const { return fVertexBuffer.get(); }
- void setNonIndexedNonInstanced(int vertexCount);
-
+ void set(sk_sp<const GrBuffer> vertexBuffer, int vertexCount, int baseVertex);
void setIndexed(sk_sp<const GrBuffer> indexBuffer, int indexCount, int baseIndex,
- uint16_t minIndexValue, uint16_t maxIndexValue, GrPrimitiveRestart);
- void setIndexedPatterned(sk_sp<const GrBuffer> indexBuffer, int indexCount, int vertexCount,
- int patternRepeatCount, int maxPatternRepetitionsInIndexBuffer);
-
- void setVertexData(sk_sp<const GrBuffer> vertexBuffer, int baseVertex = 0);
+ uint16_t minIndexValue, uint16_t maxIndexValue, GrPrimitiveRestart,
+ sk_sp<const GrBuffer> vertexBuffer, int baseVertex);
+ void setIndexedPatterned(sk_sp<const GrBuffer> indexBuffer, int indexCount,
+ int patternRepeatCount, int maxPatternRepetitionsInIndexBuffer,
+ sk_sp<const GrBuffer> vertexBuffer, int patternVertexCount,
+ int baseVertex);
void draw(GrOpsRenderPass*) const;
@@ -54,20 +53,24 @@
SkDEBUGCODE(bool fIsInitialized = false;)
};
-inline void GrMesh::setNonIndexedNonInstanced(int vertexCount) {
+inline void GrMesh::set(sk_sp<const GrBuffer> vertexBuffer, int vertexCount, int baseVertex) {
+ SkASSERT(baseVertex >= 0);
fIndexBuffer.reset();
+ fVertexBuffer = std::move(vertexBuffer);
fVertexCount = vertexCount;
- fPrimitiveRestart = GrPrimitiveRestart::kNo;
+ fBaseVertex = baseVertex;
SkDEBUGCODE(fIsInitialized = true;)
}
inline void GrMesh::setIndexed(sk_sp<const GrBuffer> indexBuffer, int indexCount, int baseIndex,
uint16_t minIndexValue, uint16_t maxIndexValue,
- GrPrimitiveRestart primitiveRestart) {
+ GrPrimitiveRestart primitiveRestart,
+ sk_sp<const GrBuffer> vertexBuffer, int baseVertex) {
SkASSERT(indexBuffer);
SkASSERT(indexCount >= 1);
SkASSERT(baseIndex >= 0);
SkASSERT(maxIndexValue >= minIndexValue);
+ SkASSERT(baseVertex >= 0);
fIndexBuffer = std::move(indexBuffer);
fIndexCount = indexCount;
fPatternRepeatCount = 0;
@@ -75,30 +78,31 @@
fMinIndexValue = minIndexValue;
fMaxIndexValue = maxIndexValue;
fPrimitiveRestart = primitiveRestart;
+ fVertexBuffer = std::move(vertexBuffer);
+ fBaseVertex = baseVertex;
SkDEBUGCODE(fIsInitialized = true;)
}
inline void GrMesh::setIndexedPatterned(sk_sp<const GrBuffer> indexBuffer, int indexCount,
- int vertexCount, int patternRepeatCount,
- int maxPatternRepetitionsInIndexBuffer) {
+ int patternRepeatCount,
+ int maxPatternRepetitionsInIndexBuffer,
+ sk_sp<const GrBuffer> vertexBuffer,
+ int patternVertexCount, int baseVertex) {
SkASSERT(indexBuffer);
SkASSERT(indexCount >= 1);
- SkASSERT(vertexCount >= 1);
+ SkASSERT(patternVertexCount >= 1);
SkASSERT(patternRepeatCount >= 1);
SkASSERT(maxPatternRepetitionsInIndexBuffer >= 1);
+ SkASSERT(baseVertex >= 0);
fIndexBuffer = std::move(indexBuffer);
fIndexCount = indexCount;
fPatternRepeatCount = patternRepeatCount;
- fVertexCount = vertexCount;
+ fVertexCount = patternVertexCount;
fMaxPatternRepetitionsInIndexBuffer = maxPatternRepetitionsInIndexBuffer;
fPrimitiveRestart = GrPrimitiveRestart::kNo;
- SkDEBUGCODE(fIsInitialized = true;)
-}
-
-inline void GrMesh::setVertexData(sk_sp<const GrBuffer> vertexBuffer, int baseVertex) {
- SkASSERT(baseVertex >= 0);
fVertexBuffer = std::move(vertexBuffer);
fBaseVertex = baseVertex;
+ SkDEBUGCODE(fIsInitialized = true;)
}
inline void GrMesh::draw(GrOpsRenderPass* opsRenderPass) const {
@@ -109,7 +113,7 @@
opsRenderPass->draw(fVertexCount, fBaseVertex);
} else {
opsRenderPass->bindBuffers(fIndexBuffer.get(), nullptr, fVertexBuffer.get(),
- this->primitiveRestart());
+ fPrimitiveRestart);
if (0 == fPatternRepeatCount) {
opsRenderPass->drawIndexed(fIndexCount, fBaseIndex, fMinIndexValue, fMaxIndexValue,
fBaseVertex);
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 {
diff --git a/tests/GrPipelineDynamicStateTest.cpp b/tests/GrPipelineDynamicStateTest.cpp
index 961b63b..6752847 100644
--- a/tests/GrPipelineDynamicStateTest.cpp
+++ b/tests/GrPipelineDynamicStateTest.cpp
@@ -152,8 +152,7 @@
SkSTArray<kNumMeshes, GrMesh> meshes;
for (int i = 0; i < kNumMeshes; ++i) {
GrMesh& mesh = meshes.push_back();
- mesh.setNonIndexedNonInstanced(4);
- mesh.setVertexData(fVertexBuffer, 4 * i);
+ mesh.set(fVertexBuffer, 4, 4 * i);
}
GrPipeline::DynamicStateArrays dynamicState;
dynamicState.fScissorRects = kDynamicScissors;
diff --git a/tests/OnFlushCallbackTest.cpp b/tests/OnFlushCallbackTest.cpp
index c639c6f..3be24da 100644
--- a/tests/OnFlushCallbackTest.cpp
+++ b/tests/OnFlushCallbackTest.cpp
@@ -182,8 +182,8 @@
}
fMesh = target->allocMesh();
- fMesh->setIndexed(indexBuffer, 6, firstIndex, 0, 3, GrPrimitiveRestart::kNo);
- fMesh->setVertexData(vertexBuffer, firstVertex);
+ fMesh->setIndexed(indexBuffer, 6, firstIndex, 0, 3, GrPrimitiveRestart::kNo, vertexBuffer,
+ firstVertex);
}
void onExecute(GrOpFlushState* flushState, const SkRect& chainBounds) override {