From 114a3c0b2b26c84b9d0907a99fd8ab7938631246 Mon Sep 17 00:00:00 2001 From: Chris Dalton Date: Fri, 26 May 2017 15:17:19 -0600 Subject: 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 Commit-Queue: Chris Dalton --- src/gpu/ops/GrAAHairLinePathRenderer.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/gpu/ops/GrAAHairLinePathRenderer.cpp') 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); } } -- cgit v1.2.3