aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/ops
diff options
context:
space:
mode:
authorGravatar Chris Dalton <csmartdalton@google.com>2017-06-12 20:44:08 -0600
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-06-13 14:25:21 +0000
commitf7eb015083aba8942031145736251dd32094115d (patch)
tree97ed397a5e8189b8c3600842c9be1ce1d46ab5ba /src/gpu/ops
parente93cf97175d348ce1400762bdd8d9acabdd29766 (diff)
Add GrPrimitiveType::kLinesAdjacency
Converts GrPrimitiveType to an enum class and adds kLinesAdjacency. Bug: skia: Change-Id: If57d26277182aac1375e8181211ddaf7ea6d1e0a Reviewed-on: https://skia-review.googlesource.com/19581 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
Diffstat (limited to 'src/gpu/ops')
-rw-r--r--src/gpu/ops/GrAAConvexPathRenderer.cpp4
-rw-r--r--src/gpu/ops/GrAAFillRectOp.cpp2
-rw-r--r--src/gpu/ops/GrAAHairLinePathRenderer.cpp6
-rw-r--r--src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp2
-rw-r--r--src/gpu/ops/GrAAStrokeRectOp.cpp2
-rw-r--r--src/gpu/ops/GrAtlasTextOp.cpp2
-rw-r--r--src/gpu/ops/GrDefaultPathRenderer.cpp8
-rw-r--r--src/gpu/ops/GrDrawVerticesOp.cpp32
-rw-r--r--src/gpu/ops/GrDrawVerticesOp.h6
-rw-r--r--src/gpu/ops/GrLatticeOp.cpp2
-rw-r--r--src/gpu/ops/GrMSAAPathRenderer.cpp6
-rw-r--r--src/gpu/ops/GrMeshDrawOp.h2
-rw-r--r--src/gpu/ops/GrNonAAFillRectOp.cpp4
-rw-r--r--src/gpu/ops/GrNonAAStrokeRectOp.cpp4
-rw-r--r--src/gpu/ops/GrOvalOpFactory.cpp6
-rw-r--r--src/gpu/ops/GrRegionOp.cpp2
-rw-r--r--src/gpu/ops/GrShadowRRectOp.cpp2
-rw-r--r--src/gpu/ops/GrSmallPathRenderer.cpp2
-rw-r--r--src/gpu/ops/GrTessellatingPathRenderer.cpp2
19 files changed, 50 insertions, 46 deletions
diff --git a/src/gpu/ops/GrAAConvexPathRenderer.cpp b/src/gpu/ops/GrAAConvexPathRenderer.cpp
index cd69c6acd4..9125300e21 100644
--- a/src/gpu/ops/GrAAConvexPathRenderer.cpp
+++ b/src/gpu/ops/GrAAConvexPathRenderer.cpp
@@ -812,7 +812,7 @@ private:
extract_verts(tess, verts, vertexStride, fColor, idxs, canTweakAlphaForCoverage);
- GrMesh mesh(kTriangles_GrPrimitiveType);
+ GrMesh mesh(GrPrimitiveType::kTriangles);
mesh.setIndexed(indexBuffer, tess.numIndices(), firstIndex, 0, tess.numPts() - 1);
mesh.setVertexData(vertexBuffer, firstVertex);
target->draw(gp.get(), this->pipeline(), mesh);
@@ -897,7 +897,7 @@ private:
SkSTArray<kPreallocDrawCnt, Draw, true> draws;
create_vertices(segments, fanPt, &draws, verts, idxs);
- GrMesh mesh(kTriangles_GrPrimitiveType);
+ GrMesh mesh(GrPrimitiveType::kTriangles);
for (int j = 0; j < draws.count(); ++j) {
const Draw& draw = draws[j];
diff --git a/src/gpu/ops/GrAAFillRectOp.cpp b/src/gpu/ops/GrAAFillRectOp.cpp
index 364c2218e4..af5885c34f 100644
--- a/src/gpu/ops/GrAAFillRectOp.cpp
+++ b/src/gpu/ops/GrAAFillRectOp.cpp
@@ -231,7 +231,7 @@ private:
size_t vertexStride = gp->getVertexStride();
sk_sp<const GrBuffer> indexBuffer(get_index_buffer(target->resourceProvider()));
- PatternHelper helper(kTriangles_GrPrimitiveType);
+ PatternHelper helper(GrPrimitiveType::kTriangles);
void* vertices =
helper.init(target, vertexStride, indexBuffer.get(), kVertsPerAAFillRect,
kIndicesPerAAFillRect, fRectCnt);
diff --git a/src/gpu/ops/GrAAHairLinePathRenderer.cpp b/src/gpu/ops/GrAAHairLinePathRenderer.cpp
index 26d58f4a95..4d4b74f89b 100644
--- a/src/gpu/ops/GrAAHairLinePathRenderer.cpp
+++ b/src/gpu/ops/GrAAHairLinePathRenderer.cpp
@@ -860,7 +860,7 @@ void AAHairlineOp::onPrepareDraws(Target* target) const {
add_line(&lines[2*i], toSrc, this->coverage(), &verts);
}
- GrMesh mesh(kTriangles_GrPrimitiveType);
+ GrMesh mesh(GrPrimitiveType::kTriangles);
mesh.setIndexedPatterned(linesIndexBuffer.get(), kIdxsPerLineSeg, kLineSegNumVertices,
lineCount, kLineSegsNumInIdxBuffer);
mesh.setVertexData(vertexBuffer, firstVertex);
@@ -917,7 +917,7 @@ void AAHairlineOp::onPrepareDraws(Target* target) const {
}
if (quadCount > 0) {
- GrMesh mesh(kTriangles_GrPrimitiveType);
+ GrMesh mesh(GrPrimitiveType::kTriangles);
mesh.setIndexedPatterned(quadsIndexBuffer.get(), kIdxsPerQuad, kQuadNumVertices,
quadCount, kQuadsNumInIdxBuffer);
mesh.setVertexData(vertexBuffer, firstVertex);
@@ -926,7 +926,7 @@ void AAHairlineOp::onPrepareDraws(Target* target) const {
}
if (conicCount > 0) {
- GrMesh mesh(kTriangles_GrPrimitiveType);
+ GrMesh mesh(GrPrimitiveType::kTriangles);
mesh.setIndexedPatterned(quadsIndexBuffer.get(), kIdxsPerQuad, kQuadNumVertices,
conicCount, kQuadsNumInIdxBuffer);
mesh.setVertexData(vertexBuffer, firstVertex);
diff --git a/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp b/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp
index 5cfe5cbfed..9df9d678ec 100644
--- a/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp
+++ b/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp
@@ -190,7 +190,7 @@ private:
return;
}
const GrBuffer* vertexBuffer;
- GrMesh mesh(kTriangles_GrPrimitiveType);
+ GrMesh mesh(GrPrimitiveType::kTriangles);
int firstVertex;
void* verts = target->makeVertexSpace(vertexStride, vertexCount, &vertexBuffer,
&firstVertex);
diff --git a/src/gpu/ops/GrAAStrokeRectOp.cpp b/src/gpu/ops/GrAAStrokeRectOp.cpp
index 7ec8b86aa8..7af6c3e58e 100644
--- a/src/gpu/ops/GrAAStrokeRectOp.cpp
+++ b/src/gpu/ops/GrAAStrokeRectOp.cpp
@@ -262,7 +262,7 @@ void AAStrokeRectOp::onPrepareDraws(Target* target) const {
const sk_sp<const GrBuffer> indexBuffer(
GetIndexBuffer(target->resourceProvider(), this->miterStroke()));
- PatternHelper helper(kTriangles_GrPrimitiveType);
+ PatternHelper helper(GrPrimitiveType::kTriangles);
void* vertices =
helper.init(target, vertexStride, indexBuffer.get(),
verticesPerInstance, indicesPerInstance, instanceCount);
diff --git a/src/gpu/ops/GrAtlasTextOp.cpp b/src/gpu/ops/GrAtlasTextOp.cpp
index 2f2def662a..c854a8b54d 100644
--- a/src/gpu/ops/GrAtlasTextOp.cpp
+++ b/src/gpu/ops/GrAtlasTextOp.cpp
@@ -139,7 +139,7 @@ void GrAtlasTextOp::onPrepareDraws(Target* target) const {
}
void GrAtlasTextOp::flush(GrLegacyMeshDrawOp::Target* target, FlushInfo* flushInfo) const {
- GrMesh mesh(kTriangles_GrPrimitiveType);
+ GrMesh mesh(GrPrimitiveType::kTriangles);
int maxGlyphsPerDraw =
static_cast<int>(flushInfo->fIndexBuffer->gpuMemorySize() / sizeof(uint16_t) / 6);
mesh.setIndexedPatterned(flushInfo->fIndexBuffer.get(), kIndicesPerGlyph, kVerticesPerGlyph,
diff --git a/src/gpu/ops/GrDefaultPathRenderer.cpp b/src/gpu/ops/GrDefaultPathRenderer.cpp
index c282036971..bc5702b393 100644
--- a/src/gpu/ops/GrDefaultPathRenderer.cpp
+++ b/src/gpu/ops/GrDefaultPathRenderer.cpp
@@ -184,16 +184,16 @@ private:
if (this->isHairline()) {
if (isIndexed) {
maxIndices = 2 * maxVertices;
- primitiveType = kLines_GrPrimitiveType;
+ primitiveType = GrPrimitiveType::kLines;
} else {
- primitiveType = kLineStrip_GrPrimitiveType;
+ primitiveType = GrPrimitiveType::kLineStrip;
}
} else {
if (isIndexed) {
maxIndices = 3 * maxVertices;
- primitiveType = kTriangles_GrPrimitiveType;
+ primitiveType = GrPrimitiveType::kTriangles;
} else {
- primitiveType = kTriangleFan_GrPrimitiveType;
+ primitiveType = GrPrimitiveType::kTriangleFan;
}
}
diff --git a/src/gpu/ops/GrDrawVerticesOp.cpp b/src/gpu/ops/GrDrawVerticesOp.cpp
index a83b3e07b9..ecc75a7f4b 100644
--- a/src/gpu/ops/GrDrawVerticesOp.cpp
+++ b/src/gpu/ops/GrDrawVerticesOp.cpp
@@ -58,7 +58,7 @@ GrDrawVerticesOp::GrDrawVerticesOp(sk_sp<SkVertices> vertices, GrPrimitiveType p
}
IsZeroArea zeroArea;
- if (GrIsPrimTypeLines(primitiveType) || kPoints_GrPrimitiveType == primitiveType) {
+ if (GrIsPrimTypeLines(primitiveType) || GrPrimitiveType::kPoints == primitiveType) {
zeroArea = IsZeroArea::kYes;
} else {
zeroArea = IsZeroArea::kNo;
@@ -300,15 +300,17 @@ bool GrDrawVerticesOp::onCombineIfPossible(GrOp* t, const GrCaps& caps) {
static uint32_t seed_vertices(GrPrimitiveType type) {
switch (type) {
- case kTriangles_GrPrimitiveType:
- case kTriangleStrip_GrPrimitiveType:
- case kTriangleFan_GrPrimitiveType:
+ case GrPrimitiveType::kTriangles:
+ case GrPrimitiveType::kTriangleStrip:
+ case GrPrimitiveType::kTriangleFan:
return 3;
- case kPoints_GrPrimitiveType:
+ case GrPrimitiveType::kPoints:
return 1;
- case kLines_GrPrimitiveType:
- case kLineStrip_GrPrimitiveType:
+ case GrPrimitiveType::kLines:
+ case GrPrimitiveType::kLineStrip:
return 2;
+ case GrPrimitiveType::kLinesAdjacency:
+ return 4;
}
SkFAIL("Incomplete switch\n");
return 0;
@@ -316,15 +318,17 @@ static uint32_t seed_vertices(GrPrimitiveType type) {
static uint32_t primitive_vertices(GrPrimitiveType type) {
switch (type) {
- case kTriangles_GrPrimitiveType:
+ case GrPrimitiveType::kTriangles:
return 3;
- case kLines_GrPrimitiveType:
+ case GrPrimitiveType::kLines:
return 2;
- case kTriangleStrip_GrPrimitiveType:
- case kTriangleFan_GrPrimitiveType:
- case kPoints_GrPrimitiveType:
- case kLineStrip_GrPrimitiveType:
+ case GrPrimitiveType::kTriangleStrip:
+ case GrPrimitiveType::kTriangleFan:
+ case GrPrimitiveType::kPoints:
+ case GrPrimitiveType::kLineStrip:
return 1;
+ case GrPrimitiveType::kLinesAdjacency:
+ return 4;
}
SkFAIL("Incomplete switch\n");
return 0;
@@ -358,7 +362,7 @@ static void randomize_params(size_t count, size_t maxVertex, SkScalar min, SkSca
}
GR_LEGACY_MESH_DRAW_OP_TEST_DEFINE(VerticesOp) {
- GrPrimitiveType type = GrPrimitiveType(random->nextULessThan(kLast_GrPrimitiveType + 1));
+ GrPrimitiveType type = GrPrimitiveType(random->nextULessThan(kNumGrPrimitiveTypes));
uint32_t primitiveCount = random->nextRangeU(1, 100);
// TODO make 'sensible' indexbuffers
diff --git a/src/gpu/ops/GrDrawVerticesOp.h b/src/gpu/ops/GrDrawVerticesOp.h
index 1d788ab15c..aea80078a1 100644
--- a/src/gpu/ops/GrDrawVerticesOp.h
+++ b/src/gpu/ops/GrDrawVerticesOp.h
@@ -70,9 +70,9 @@ private:
GrPrimitiveType primitiveType() const { return fPrimitiveType; }
bool combinablePrimitive() const {
- return kTriangles_GrPrimitiveType == fPrimitiveType ||
- kLines_GrPrimitiveType == fPrimitiveType ||
- kPoints_GrPrimitiveType == fPrimitiveType;
+ return GrPrimitiveType::kTriangles == fPrimitiveType ||
+ GrPrimitiveType::kLines == fPrimitiveType ||
+ GrPrimitiveType::kPoints == fPrimitiveType;
}
bool onCombineIfPossible(GrOp* t, const GrCaps&) override;
diff --git a/src/gpu/ops/GrLatticeOp.cpp b/src/gpu/ops/GrLatticeOp.cpp
index effab8cdcf..50b957cd21 100644
--- a/src/gpu/ops/GrLatticeOp.cpp
+++ b/src/gpu/ops/GrLatticeOp.cpp
@@ -86,7 +86,7 @@ private:
}
sk_sp<const GrBuffer> indexBuffer(target->resourceProvider()->refQuadIndexBuffer());
- PatternHelper helper(kTriangles_GrPrimitiveType);
+ PatternHelper helper(GrPrimitiveType::kTriangles);
void* vertices = helper.init(target, vertexStride, indexBuffer.get(), kVertsPerRect,
kIndicesPerRect, numRects);
if (!vertices || !indexBuffer) {
diff --git a/src/gpu/ops/GrMSAAPathRenderer.cpp b/src/gpu/ops/GrMSAAPathRenderer.cpp
index 50a839d7b0..ef64ecfe7d 100644
--- a/src/gpu/ops/GrMSAAPathRenderer.cpp
+++ b/src/gpu/ops/GrMSAAPathRenderer.cpp
@@ -330,8 +330,8 @@ private:
return;
}
- GrPrimitiveType primitiveType = fIsIndexed ? kTriangles_GrPrimitiveType
- : kTriangleFan_GrPrimitiveType;
+ GrPrimitiveType primitiveType = fIsIndexed ? GrPrimitiveType::kTriangles
+ : GrPrimitiveType::kTriangleFan;
// allocate vertex / index buffers
const GrBuffer* lineVertexBuffer;
@@ -437,7 +437,7 @@ private:
target->makeVertexSpace(quadVertexStride, quadVertexOffset, &quadVertexBuffer,
&firstQuadVertex);
memcpy(quadVertices, quads.vertices, quadVertexStride * quadVertexOffset);
- GrMesh quadMeshes(kTriangles_GrPrimitiveType);
+ GrMesh quadMeshes(GrPrimitiveType::kTriangles);
if (!fIsIndexed) {
quadMeshes.setNonIndexedNonInstanced(quadVertexOffset);
} else {
diff --git a/src/gpu/ops/GrMeshDrawOp.h b/src/gpu/ops/GrMeshDrawOp.h
index 178ca2986b..349e8b6bda 100644
--- a/src/gpu/ops/GrMeshDrawOp.h
+++ b/src/gpu/ops/GrMeshDrawOp.h
@@ -52,7 +52,7 @@ protected:
/** A specialization of InstanceHelper for quad rendering. */
class QuadHelper : private PatternHelper {
public:
- QuadHelper() : INHERITED(kTriangles_GrPrimitiveType) {}
+ QuadHelper() : INHERITED(GrPrimitiveType::kTriangles) {}
/** Finds the cached quad index buffer and reserves vertex space. Returns nullptr on failure
and on success a pointer to the vertex data that the caller should populate before
calling recordDraws(). */
diff --git a/src/gpu/ops/GrNonAAFillRectOp.cpp b/src/gpu/ops/GrNonAAFillRectOp.cpp
index 32e77da52b..defc7907b9 100644
--- a/src/gpu/ops/GrNonAAFillRectOp.cpp
+++ b/src/gpu/ops/GrNonAAFillRectOp.cpp
@@ -175,7 +175,7 @@ private:
int rectCount = fRects.count();
sk_sp<const GrBuffer> indexBuffer(target->resourceProvider()->refQuadIndexBuffer());
- PatternHelper helper(kTriangles_GrPrimitiveType);
+ PatternHelper helper(GrPrimitiveType::kTriangles);
void* vertices = helper.init(target, vertexStride, indexBuffer.get(), kVertsPerRect,
kIndicesPerRect, rectCount);
if (!vertices || !indexBuffer) {
@@ -296,7 +296,7 @@ private:
int rectCount = fRects.count();
sk_sp<const GrBuffer> indexBuffer(target->resourceProvider()->refQuadIndexBuffer());
- PatternHelper helper(kTriangles_GrPrimitiveType);
+ PatternHelper helper(GrPrimitiveType::kTriangles);
void* vertices = helper.init(target, vertexStride, indexBuffer.get(), kVertsPerRect,
kIndicesPerRect, rectCount);
if (!vertices || !indexBuffer) {
diff --git a/src/gpu/ops/GrNonAAStrokeRectOp.cpp b/src/gpu/ops/GrNonAAStrokeRectOp.cpp
index eee8120eff..94dc373fc6 100644
--- a/src/gpu/ops/GrNonAAStrokeRectOp.cpp
+++ b/src/gpu/ops/GrNonAAStrokeRectOp.cpp
@@ -144,11 +144,11 @@ private:
GrPrimitiveType primType;
if (fStrokeWidth > 0) {
- primType = kTriangleStrip_GrPrimitiveType;
+ primType = GrPrimitiveType::kTriangleStrip;
init_stroke_rect_strip(vertex, fRect, fStrokeWidth);
} else {
// hairline
- primType = kLineStrip_GrPrimitiveType;
+ primType = GrPrimitiveType::kLineStrip;
vertex[0].set(fRect.fLeft, fRect.fTop);
vertex[1].set(fRect.fRight, fRect.fTop);
vertex[2].set(fRect.fRight, fRect.fBottom);
diff --git a/src/gpu/ops/GrOvalOpFactory.cpp b/src/gpu/ops/GrOvalOpFactory.cpp
index 2b9d1c8e56..15c2569334 100644
--- a/src/gpu/ops/GrOvalOpFactory.cpp
+++ b/src/gpu/ops/GrOvalOpFactory.cpp
@@ -1082,7 +1082,7 @@ private:
vertices += circle_type_to_vert_count(circle.fStroked) * vertexStride;
}
- GrMesh mesh(kTriangles_GrPrimitiveType);
+ GrMesh mesh(GrPrimitiveType::kTriangles);
mesh.setIndexed(indexBuffer, fIndexCount, firstIndex, 0, fVertCount - 1);
mesh.setVertexData(vertexBuffer, firstVertex);
target->draw(gp.get(), fHelper.makePipeline(target), mesh);
@@ -1987,7 +1987,7 @@ private:
currStartVertex += rrect_type_to_vert_count(rrect.fType);
}
- GrMesh mesh(kTriangles_GrPrimitiveType);
+ GrMesh mesh(GrPrimitiveType::kTriangles);
mesh.setIndexed(indexBuffer, fIndexCount, firstIndex, 0, fVertCount - 1);
mesh.setVertexData(vertexBuffer, firstVertex);
target->draw(gp.get(), fHelper.makePipeline(target), mesh);
@@ -2177,7 +2177,7 @@ private:
sk_sp<const GrBuffer> indexBuffer(ref_rrect_index_buffer(
fStroked ? kStroke_RRectType : kFill_RRectType, target->resourceProvider()));
- PatternHelper helper(kTriangles_GrPrimitiveType);
+ PatternHelper helper(GrPrimitiveType::kTriangles);
EllipseVertex* verts = reinterpret_cast<EllipseVertex*>(
helper.init(target, vertexStride, indexBuffer.get(), kVertsPerStandardRRect,
indicesPerInstance, fRRects.count()));
diff --git a/src/gpu/ops/GrRegionOp.cpp b/src/gpu/ops/GrRegionOp.cpp
index 62d7362635..3920b02437 100644
--- a/src/gpu/ops/GrRegionOp.cpp
+++ b/src/gpu/ops/GrRegionOp.cpp
@@ -103,7 +103,7 @@ private:
size_t vertexStride = gp->getVertexStride();
sk_sp<const GrBuffer> indexBuffer(target->resourceProvider()->refQuadIndexBuffer());
- PatternHelper helper(kTriangles_GrPrimitiveType);
+ PatternHelper helper(GrPrimitiveType::kTriangles);
void* vertices =
helper.init(target, vertexStride, indexBuffer.get(), kVertsPerInstance,
kIndicesPerInstance, numRects);
diff --git a/src/gpu/ops/GrShadowRRectOp.cpp b/src/gpu/ops/GrShadowRRectOp.cpp
index af41bd48ee..13cfc4dd8b 100644
--- a/src/gpu/ops/GrShadowRRectOp.cpp
+++ b/src/gpu/ops/GrShadowRRectOp.cpp
@@ -628,7 +628,7 @@ private:
}
}
- GrMesh mesh(kTriangles_GrPrimitiveType);
+ GrMesh mesh(GrPrimitiveType::kTriangles);
mesh.setIndexed(indexBuffer, fIndexCount, firstIndex, 0, fVertCount - 1);
mesh.setVertexData(vertexBuffer, firstVertex);
target->draw(gp.get(), this->pipeline(), mesh);
diff --git a/src/gpu/ops/GrSmallPathRenderer.cpp b/src/gpu/ops/GrSmallPathRenderer.cpp
index 048351bab7..b45b1297b9 100644
--- a/src/gpu/ops/GrSmallPathRenderer.cpp
+++ b/src/gpu/ops/GrSmallPathRenderer.cpp
@@ -679,7 +679,7 @@ private:
void flush(GrLegacyMeshDrawOp::Target* target, FlushInfo* flushInfo) const {
if (flushInfo->fInstancesToFlush) {
- GrMesh mesh(kTriangles_GrPrimitiveType);
+ GrMesh mesh(GrPrimitiveType::kTriangles);
int maxInstancesPerDraw =
static_cast<int>(flushInfo->fIndexBuffer->gpuMemorySize() / sizeof(uint16_t) / 6);
mesh.setIndexedPatterned(flushInfo->fIndexBuffer.get(), kIndicesPerQuad,
diff --git a/src/gpu/ops/GrTessellatingPathRenderer.cpp b/src/gpu/ops/GrTessellatingPathRenderer.cpp
index 27de8f2e5f..7637af04a8 100644
--- a/src/gpu/ops/GrTessellatingPathRenderer.cpp
+++ b/src/gpu/ops/GrTessellatingPathRenderer.cpp
@@ -313,7 +313,7 @@ private:
void drawVertices(Target* target, const GrGeometryProcessor* gp, const GrBuffer* vb,
int firstVertex, int count) const {
- GrMesh mesh(TESSELLATOR_WIREFRAME ? kLines_GrPrimitiveType : kTriangles_GrPrimitiveType);
+ GrMesh mesh(TESSELLATOR_WIREFRAME ? GrPrimitiveType::kLines : GrPrimitiveType::kTriangles);
mesh.setNonIndexedNonInstanced(count);
mesh.setVertexData(vb, firstVertex);
target->draw(gp, this->pipeline(), mesh);