diff options
author | 2017-05-15 11:03:26 -0600 | |
---|---|---|
committer | 2017-05-15 18:01:59 +0000 | |
commit | bca46e29e9f96999df0b38fb9359e71b73217c94 (patch) | |
tree | 0bd487809346776fccfee12540968cb23aa6cb7a /src/gpu/ops/GrAAHairLinePathRenderer.cpp | |
parent | 18e9484ad5b5755757dc6badb986017a088a9c6b (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.cpp | 39 |
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); } } |