diff options
author | Chris Dalton <csmartdalton@google.com> | 2018-03-07 12:53:01 -0700 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-03-07 20:15:11 +0000 |
commit | 5183e649efdcf4bf46a2883fdedec7a3b7e4fb0f (patch) | |
tree | a8890fafd6924fbfd5c108e3ad318b2213ed439e /samplecode | |
parent | de9f546a04e2020f662bf4e99ab82ce5cb2cdbea (diff) |
ccpr: Combine GS triangle hulls and edges into a single draw
Updates the geometry shader backend to match the vertex backend and draw
triangle rasters together with their their edges in a single draw call.
This gives a performance boost as well as cleaning up some API
awkwardness.
This is one step toward the final goal of drawing ccpr primitives in a single
pass.
Bug: skia:
Change-Id: I2723692d02b9e39ca5dc5d9e022b528a051988ab
Reviewed-on: https://skia-review.googlesource.com/112104
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'samplecode')
-rw-r--r-- | samplecode/SampleCCPRGeometry.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/samplecode/SampleCCPRGeometry.cpp b/samplecode/SampleCCPRGeometry.cpp index a0c5d7be7a..a90ece09a1 100644 --- a/samplecode/SampleCCPRGeometry.cpp +++ b/samplecode/SampleCCPRGeometry.cpp @@ -33,7 +33,7 @@ using RenderPass = GrCCCoverageProcessor::RenderPass; static constexpr float kDebugBloat = 40; static int is_quadratic(RenderPass pass) { - return pass == RenderPass::kQuadraticHulls || pass == RenderPass::kQuadraticCorners; + return pass == RenderPass::kQuadratics || pass == RenderPass::kQuadraticCorners; } /** @@ -59,7 +59,7 @@ private: void updateGpuData(); - RenderPass fRenderPass = RenderPass::kTriangleHulls; + RenderPass fRenderPass = RenderPass::kTriangles; SkCubicType fCubicType; SkMatrix fCubicKLM; @@ -249,10 +249,6 @@ void CCPRGeometryView::Op::onExecute(GrOpFlushState* state) { ? static_cast<GrGLGpu*>(state->gpu()) : nullptr; - if (!GrCCCoverageProcessor::DoesRenderPass(fView->fRenderPass, state->caps())) { - return; - } - GrCCCoverageProcessor proc(rp, fView->fRenderPass, GrCCCoverageProcessor::WindMethod::kCrossProduct); SkDEBUGCODE(proc.enableDebugVisualizations(kDebugBloat)); @@ -346,7 +342,7 @@ bool CCPRGeometryView::onQuery(SkEvent* evt) { } SkUnichar unichar; if (SampleCode::CharQ(*evt, &unichar)) { - if (unichar >= '1' && unichar <= '7') { + if (unichar >= '1' && unichar <= '6') { fRenderPass = RenderPass(unichar - '1'); this->updateAndInval(); return true; |