diff options
author | 2017-05-26 15:17:19 -0600 | |
---|---|---|
committer | 2017-05-30 16:02:36 +0000 | |
commit | 114a3c0b2b26c84b9d0907a99fd8ab7938631246 (patch) | |
tree | a243fad112a79f3375ae98f0c916db63d9cdc9c0 /src/gpu/ops/GrAAHairLinePathRenderer.cpp | |
parent | 8cc933104b0e965c4226c91701cee7586587409f (diff) |
Fix glDrawRangeElements
Adds explicit min/max index value fields to GrMesh. This eliminates the
previous assumption that the index values were within the range
[0..vertexCount-1]. In the pattern case we still maintain this
assumption.
Updates GrMesh to hide its fields and handle its new complexity using a
"helper" interface instead.
Adds a unit test for GrMesh.
Bug: skia:
Change-Id: Ia23de72d510f8827cee56072b727fb70a6e46b8d
Reviewed-on: https://skia-review.googlesource.com/17964
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Diffstat (limited to 'src/gpu/ops/GrAAHairLinePathRenderer.cpp')
-rw-r--r-- | src/gpu/ops/GrAAHairLinePathRenderer.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/gpu/ops/GrAAHairLinePathRenderer.cpp b/src/gpu/ops/GrAAHairLinePathRenderer.cpp index 5618fd1b8e..26d58f4a95 100644 --- a/src/gpu/ops/GrAAHairLinePathRenderer.cpp +++ b/src/gpu/ops/GrAAHairLinePathRenderer.cpp @@ -861,9 +861,9 @@ void AAHairlineOp::onPrepareDraws(Target* target) const { } GrMesh mesh(kTriangles_GrPrimitiveType); - mesh.setIndexedPatterned(linesIndexBuffer.get(), kIdxsPerLineSeg, + mesh.setIndexedPatterned(linesIndexBuffer.get(), kIdxsPerLineSeg, kLineSegNumVertices, lineCount, kLineSegsNumInIdxBuffer); - mesh.setVertices(vertexBuffer, kLineSegNumVertices, firstVertex); + mesh.setVertexData(vertexBuffer, firstVertex); target->draw(lineGP.get(), this->pipeline(), mesh); } @@ -918,18 +918,18 @@ void AAHairlineOp::onPrepareDraws(Target* target) const { if (quadCount > 0) { GrMesh mesh(kTriangles_GrPrimitiveType); - mesh.setIndexedPatterned(quadsIndexBuffer.get(), kIdxsPerQuad, quadCount, - kQuadsNumInIdxBuffer); - mesh.setVertices(vertexBuffer, kQuadNumVertices, firstVertex); + mesh.setIndexedPatterned(quadsIndexBuffer.get(), kIdxsPerQuad, kQuadNumVertices, + quadCount, kQuadsNumInIdxBuffer); + mesh.setVertexData(vertexBuffer, firstVertex); target->draw(quadGP.get(), this->pipeline(), mesh); firstVertex += quadCount * kQuadNumVertices; } if (conicCount > 0) { GrMesh mesh(kTriangles_GrPrimitiveType); - mesh.setIndexedPatterned(quadsIndexBuffer.get(), kIdxsPerQuad, conicCount, - kQuadsNumInIdxBuffer); - mesh.setVertices(vertexBuffer, kQuadNumVertices, firstVertex); + mesh.setIndexedPatterned(quadsIndexBuffer.get(), kIdxsPerQuad, kQuadNumVertices, + conicCount, kQuadsNumInIdxBuffer); + mesh.setVertexData(vertexBuffer, firstVertex); target->draw(conicGP.get(), this->pipeline(), mesh); } } |