aboutsummaryrefslogtreecommitdiffhomepage
path: root/samplecode
diff options
context:
space:
mode:
authorGravatar Chris Dalton <csmartdalton@google.com>2017-12-22 02:24:53 -0700
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-12-22 18:42:05 +0000
commite3877ce5ceb7842b61d54bebcc51864e5787a2bc (patch)
tree60496eb4538ae408f46471db1b394602abd519c9 /samplecode
parent92c7fa6b009b3ea4e93ca179153f837c2d9d7962 (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')
-rw-r--r--samplecode/SampleCCPRGeometry.cpp12
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,