Apply hairline optimization only if the path renderer wants it
Make the decision to convert thin, non-hairline paths to hairline
paths at the renderer level.
The current nv_path_rendering implementation does not render
hairlines. Rendering the hairlines with normal renderers cause
unneccessary gl program changes, which is quite slow.
Changes the behavior of non-nv_path_rendering paths to always perform
the optimization if the shape ends up being painted by a renderer that
wants the optimization. Previously the optimization was applied only
when callgraph started with SkCanvas::drawPath.
Applies the optimization for GrAAHairLineRenderer and
GrDefaultPathRenderer.
This changes gm results for dashing3_{msaa4,gpu} and drawlooper_msaa4.
R=bsalomon@google.com, jvanverth@google.com, rmistry@google.com
Author: kkinnunen@nvidia.com
Review URL: https://codereview.chromium.org/38573007
git-svn-id: http://skia.googlecode.com/svn/trunk@12357 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp
index accaf88..5b030fa 100644
--- a/src/gpu/gl/GrGLProgram.cpp
+++ b/src/gpu/gl/GrGLProgram.cpp
@@ -207,10 +207,10 @@
coverage = 0;
} else if (blendOpts & GrDrawState::kEmitCoverage_BlendOptFlag) {
color = 0xffffffff;
- coverage = drawState.getCoverage();
+ coverage = drawState.getCoverageColor();
} else {
color = drawState.getColor();
- coverage = drawState.getCoverage();
+ coverage = drawState.getCoverageColor();
}
this->setColor(drawState, color, sharedState);