diff options
author | Chris Dalton <csmartdalton@google.com> | 2017-12-22 02:24:53 -0700 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-12-22 18:42:05 +0000 |
commit | e3877ce5ceb7842b61d54bebcc51864e5787a2bc (patch) | |
tree | 60496eb4538ae408f46471db1b394602abd519c9 /samplecode/SampleCCPRGeometry.cpp | |
parent | 92c7fa6b009b3ea4e93ca179153f837c2d9d7962 (diff) |
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 <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Diffstat (limited to 'samplecode/SampleCCPRGeometry.cpp')
-rw-r--r-- | samplecode/SampleCCPRGeometry.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
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<GrGLGpu*>(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<GrBuffer> instBuff(rp->createBuffer(fView->fCubicInstances.count() * sizeof(CubicInstance), kVertex_GrBufferType, |