aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/ops/GrAAHairLinePathRenderer.cpp
diff options
context:
space:
mode:
authorGravatar Chris Dalton <csmartdalton@google.com>2017-05-15 11:03:26 -0600
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-05-15 18:01:59 +0000
commitbca46e29e9f96999df0b38fb9359e71b73217c94 (patch)
tree0bd487809346776fccfee12540968cb23aa6cb7a /src/gpu/ops/GrAAHairLinePathRenderer.cpp
parent18e9484ad5b5755757dc6badb986017a088a9c6b (diff)
Convert GrMesh back to a class
Specific methods that limit the data to valid configurations are better than a runtime mega-assert. Bug: skia: Change-Id: Ie15f2dc79659e44cfaddd16eb474795b110fda73 Reviewed-on: https://skia-review.googlesource.com/16577 Commit-Queue: Chris Dalton <csmartdalton@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/ops/GrAAHairLinePathRenderer.cpp')
-rw-r--r--src/gpu/ops/GrAAHairLinePathRenderer.cpp39
1 files changed, 12 insertions, 27 deletions
diff --git a/src/gpu/ops/GrAAHairLinePathRenderer.cpp b/src/gpu/ops/GrAAHairLinePathRenderer.cpp
index 755a9f6ff6..5618fd1b8e 100644
--- a/src/gpu/ops/GrAAHairLinePathRenderer.cpp
+++ b/src/gpu/ops/GrAAHairLinePathRenderer.cpp
@@ -860,15 +860,10 @@ void AAHairlineOp::onPrepareDraws(Target* target) const {
add_line(&lines[2*i], toSrc, this->coverage(), &verts);
}
- GrMesh mesh;
- mesh.fPrimitiveType = kTriangles_GrPrimitiveType;
- mesh.fIndexBuffer.reset(linesIndexBuffer.get());
- mesh.fIndexCount = kIdxsPerLineSeg;
- mesh.fVertexBuffer.reset(vertexBuffer);
- mesh.fVertexCount = kLineSegNumVertices;
- mesh.fBaseVertex = firstVertex;
- mesh.fPatternRepeatCount = lineCount;
- mesh.fMaxPatternRepetitionsInIndexBuffer = kLineSegsNumInIdxBuffer;
+ GrMesh mesh(kTriangles_GrPrimitiveType);
+ mesh.setIndexedPatterned(linesIndexBuffer.get(), kIdxsPerLineSeg,
+ lineCount, kLineSegsNumInIdxBuffer);
+ mesh.setVertices(vertexBuffer, kLineSegNumVertices, firstVertex);
target->draw(lineGP.get(), this->pipeline(), mesh);
}
@@ -922,29 +917,19 @@ void AAHairlineOp::onPrepareDraws(Target* target) const {
}
if (quadCount > 0) {
- GrMesh mesh;
- mesh.fPrimitiveType = kTriangles_GrPrimitiveType;
- mesh.fIndexBuffer.reset(quadsIndexBuffer.get());
- mesh.fIndexCount = kIdxsPerQuad;
- mesh.fVertexBuffer.reset(vertexBuffer);
- mesh.fVertexCount = kQuadNumVertices;
- mesh.fBaseVertex = firstVertex;
- mesh.fPatternRepeatCount = quadCount;
- mesh.fMaxPatternRepetitionsInIndexBuffer = kQuadsNumInIdxBuffer;
+ GrMesh mesh(kTriangles_GrPrimitiveType);
+ mesh.setIndexedPatterned(quadsIndexBuffer.get(), kIdxsPerQuad, quadCount,
+ kQuadsNumInIdxBuffer);
+ mesh.setVertices(vertexBuffer, kQuadNumVertices, firstVertex);
target->draw(quadGP.get(), this->pipeline(), mesh);
firstVertex += quadCount * kQuadNumVertices;
}
if (conicCount > 0) {
- GrMesh mesh;
- mesh.fPrimitiveType = kTriangles_GrPrimitiveType;
- mesh.fIndexBuffer.reset(quadsIndexBuffer.get());
- mesh.fIndexCount = kIdxsPerQuad;
- mesh.fVertexBuffer.reset(vertexBuffer);
- mesh.fVertexCount = kQuadNumVertices;
- mesh.fBaseVertex = firstVertex;
- mesh.fPatternRepeatCount = conicCount;
- mesh.fMaxPatternRepetitionsInIndexBuffer = kQuadsNumInIdxBuffer;
+ GrMesh mesh(kTriangles_GrPrimitiveType);
+ mesh.setIndexedPatterned(quadsIndexBuffer.get(), kIdxsPerQuad, conicCount,
+ kQuadsNumInIdxBuffer);
+ mesh.setVertices(vertexBuffer, kQuadNumVertices, firstVertex);
target->draw(conicGP.get(), this->pipeline(), mesh);
}
}