Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(198)

Unified Diff: src/gpu/GrAAHairLinePathRenderer.cpp

Issue 1122673002: Start on simplifying generateGeometry() overrides (Closed) Base URL: https://skia.googlesource.com/skia.git@ibcache
Patch Set: drawinfo changes Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/gpu/GrAAHairLinePathRenderer.cpp
diff --git a/src/gpu/GrAAHairLinePathRenderer.cpp b/src/gpu/GrAAHairLinePathRenderer.cpp
index e9de91b4af066ed6da73ca655eed2b597c0ded97..94b71eab0ed420d1be8cdb4b4521d9c48f873b5a 100644
--- a/src/gpu/GrAAHairLinePathRenderer.cpp
+++ b/src/gpu/GrAAHairLinePathRenderer.cpp
@@ -887,23 +887,14 @@ void AAHairlineBatch::generateGeometry(GrBatchTarget* batchTarget, const GrPipel
}
{
+ int linesLeft = lineCount;
GrDrawTarget::DrawInfo info;
- info.setVertexBuffer(vertexBuffer);
- info.setIndexBuffer(linesIndexBuffer);
- info.setPrimitiveType(kTriangles_GrPrimitiveType);
- info.setStartIndex(0);
-
- int lines = 0;
- while (lines < lineCount) {
- int n = SkTMin(lineCount - lines, kLineSegsNumInIdxBuffer);
-
- info.setStartVertex(kLineSegNumVertices*lines + firstVertex);
- info.setVertexCount(kLineSegNumVertices*n);
- info.setIndexCount(kIdxsPerLineSeg*n);
+ info.initInstanced(kTriangles_GrPrimitiveType, vertexBuffer, linesIndexBuffer,
+ firstVertex, kLineSegNumVertices, kIdxsPerLineSeg, &linesLeft,
+ kLineSegsNumInIdxBuffer);
+ do {
batchTarget->draw(info);
-
- lines += n;
- }
+ } while (info.nextInstances(&linesLeft, kLineSegsNumInIdxBuffer));
}
}
@@ -952,23 +943,15 @@ void AAHairlineBatch::generateGeometry(GrBatchTarget* batchTarget, const GrPipel
quadGP->initBatchTracker(batchTarget->currentBatchTracker(), init);
{
- GrDrawTarget::DrawInfo info;
- info.setVertexBuffer(vertexBuffer);
- info.setIndexBuffer(quadsIndexBuffer);
- info.setPrimitiveType(kTriangles_GrPrimitiveType);
- info.setStartIndex(0);
-
- int quads = 0;
- while (quads < quadCount) {
- int n = SkTMin(quadCount - quads, kQuadsNumInIdxBuffer);
-
- info.setStartVertex(kQuadNumVertices*quads + firstVertex);
- info.setVertexCount(kQuadNumVertices*n);
- info.setIndexCount(kIdxsPerQuad*n);
+ int quadsLeft = quadCount;
+ GrDrawTarget::DrawInfo info;
+ info.initInstanced(kTriangles_GrPrimitiveType, vertexBuffer, quadsIndexBuffer,
+ firstVertex, kQuadNumVertices, kIdxsPerQuad, &quadsLeft,
+ kQuadsNumInIdxBuffer);
+ do {
batchTarget->draw(info);
-
- quads += n;
- }
+ } while (info.nextInstances(&quadsLeft, kQuadsNumInIdxBuffer));
+ firstVertex += quadCount * kQuadNumVertices;
}
}
@@ -984,23 +967,14 @@ void AAHairlineBatch::generateGeometry(GrBatchTarget* batchTarget, const GrPipel
conicGP->initBatchTracker(batchTarget->currentBatchTracker(), init);
{
+ int conicsLeft = conicCount;
GrDrawTarget::DrawInfo info;
- info.setVertexBuffer(vertexBuffer);
- info.setIndexBuffer(quadsIndexBuffer);
- info.setPrimitiveType(kTriangles_GrPrimitiveType);
- info.setStartIndex(0);
-
- int conics = 0;
- while (conics < conicCount) {
- int n = SkTMin(conicCount - conics, kQuadsNumInIdxBuffer);
-
- info.setStartVertex(kQuadNumVertices*(quadCount + conics) + firstVertex);
- info.setVertexCount(kQuadNumVertices*n);
- info.setIndexCount(kIdxsPerQuad*n);
+ info.initInstanced(kTriangles_GrPrimitiveType, vertexBuffer, quadsIndexBuffer,
+ firstVertex, kQuadNumVertices, kIdxsPerQuad, &conicsLeft,
+ kQuadsNumInIdxBuffer);
+ do {
batchTarget->draw(info);
-
- conics += n;
- }
+ } while (info.nextInstances(&conicsLeft, kQuadsNumInIdxBuffer));
}
}
}

Powered by Google App Engine
This is Rietveld 408576698