diff options
author | Brian Salomon <bsalomon@google.com> | 2018-06-08 18:05:20 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-06-08 22:32:02 +0000 |
commit | 802cb318f695d5c3ade20b6424c97ea548a929b2 (patch) | |
tree | 964cb86d42d1d3e0e2ffb970364622b902733a44 /src/gpu/ccpr/GrCCPathProcessor.cpp | |
parent | 65b7bfcf61c5d925bf0066a2b40dd6ef7cf82595 (diff) |
Stop passing GrPrimitiveProcessor to GrMesh::sendToGpu.
It is currently used in GrGLGpu::setupGeometry. Instead:
1) Make GrMesh track whether primitive restart should be enabled.
2) Make GrGLProgram track program attributes.
Change-Id: Ice411a495961fcbc3cedc81e8ae0583537f42153
Reviewed-on: https://skia-review.googlesource.com/132267
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Diffstat (limited to 'src/gpu/ccpr/GrCCPathProcessor.cpp')
-rw-r--r-- | src/gpu/ccpr/GrCCPathProcessor.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/gpu/ccpr/GrCCPathProcessor.cpp b/src/gpu/ccpr/GrCCPathProcessor.cpp index bbc2b811c5..5edc45ff69 100644 --- a/src/gpu/ccpr/GrCCPathProcessor.cpp +++ b/src/gpu/ccpr/GrCCPathProcessor.cpp @@ -100,10 +100,6 @@ GrCCPathProcessor::GrCCPathProcessor(GrResourceProvider* resourceProvider, this->addVertexAttrib("edge_norms", kFloat4_GrVertexAttribType); - if (resourceProvider->caps()->usePrimitiveRestart()) { - this->setWillUsePrimitiveRestart(); - } - fAtlasAccess.instantiate(resourceProvider); this->addTextureSampler(&fAtlasAccess); @@ -146,8 +142,10 @@ void GrCCPathProcessor::drawPaths(GrOpFlushState* flushState, const GrPipeline& ? SK_ARRAY_COUNT(kOctoIndicesAsStrips) : SK_ARRAY_COUNT(kOctoIndicesAsTris); GrMesh mesh(primitiveType); + auto enablePrimitiveRestart = GrPrimitiveRestart(flushState->caps().usePrimitiveRestart()); + mesh.setIndexedInstanced(indexBuffer, numIndicesPerInstance, instanceBuffer, - endInstance - baseInstance, baseInstance); + endInstance - baseInstance, baseInstance, enablePrimitiveRestart); mesh.setVertexData(vertexBuffer); flushState->rtCommandBuffer()->draw(pipeline, *this, &mesh, nullptr, 1, bounds); |