From 90e8fb1d98e149643960e5ed27b89cf1fa08e4cc Mon Sep 17 00:00:00 2001 From: Chris Dalton Date: Fri, 22 Dec 2017 02:24:53 -0700 Subject: Reland "CCPR: Initial semi-optimized vertex shader Impl" This is a reland of e3877ce5ceb7842b61d54bebcc51864e5787a2bc Original change's description: > CCPR: Initial semi-optimized vertex shader Impl > > TBR=bsalomon@google.com > > Bug: skia: > Change-Id: I24173e146d8c95cec5f29e8cb4fa5e2c28f9a33c > Reviewed-on: https://skia-review.googlesource.com/89120 > Reviewed-by: Chris Dalton > Commit-Queue: Chris Dalton Bug: skia: Change-Id: I1d194853540e64df9c7b55ceb388a5d2f32bc258 Reviewed-on: https://skia-review.googlesource.com/90963 Reviewed-by: Chris Dalton Commit-Queue: Chris Dalton --- samplecode/SampleCCPRGeometry.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'samplecode') diff --git a/samplecode/SampleCCPRGeometry.cpp b/samplecode/SampleCCPRGeometry.cpp index 92892c239b..2efb0e6b14 100644 --- a/samplecode/SampleCCPRGeometry.cpp +++ b/samplecode/SampleCCPRGeometry.cpp @@ -236,6 +236,10 @@ void CCPRGeometryView::updateGpuData() { GrCCPRGeometry::Verb::kEndClosedContour == verb) { continue; } + if (GrCCPRGeometry::Verb::kLineTo == verb) { + ++ptsIdx; + continue; + } SkASSERT(GrCCPRGeometry::Verb::kMonotonicQuadraticTo == verb); fTriangleInstances.push_back().set(&geometry.points()[ptsIdx], Sk2f(0, 0)); ptsIdx += 2; @@ -251,10 +255,14 @@ void CCPRGeometryView::Op::onExecute(GrOpFlushState* state) { GrGLGpu* glGpu = kOpenGL_GrBackend == context->contextPriv().getBackend() ? static_cast(state->gpu()) : nullptr; - GrCCPRCoverageProcessor proc(fView->fRenderPass); + if (!GrCCPRCoverageProcessor::DoesRenderPass(fView->fRenderPass, *state->caps().shaderCaps())) { + return; + } + + GrCCPRCoverageProcessor proc(rp, fView->fRenderPass, *state->caps().shaderCaps()); SkDEBUGCODE(proc.enableDebugVisualizations(kDebugBloat);) - SkSTArray<1, GrMesh, true> mesh; + SkSTArray<1, GrMesh> mesh; if (GrCCPRCoverageProcessor::RenderPassIsCubic(fView->fRenderPass)) { sk_sp instBuff(rp->createBuffer(fView->fCubicInstances.count() * sizeof(CubicInstance), kVertex_GrBufferType, -- cgit v1.2.3