aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar joshualitt <joshualitt@chromium.org>2014-12-10 14:23:40 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2014-12-10 14:23:40 -0800
commitbd528cdb51c4a64c2daead66f152b4034cebf752 (patch)
tree1591b9853e3f971dd9990ac8afdfbdf3c880fc47 /src
parentb2fe5407df616e00e41d380393673136d8f9f1e7 (diff)
fix for chrome bug with sub pixel hairlines
Diffstat (limited to 'src')
-rw-r--r--src/gpu/gl/builders/GrGLProgramBuilder.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gpu/gl/builders/GrGLProgramBuilder.cpp b/src/gpu/gl/builders/GrGLProgramBuilder.cpp
index 8ea03fbba7..daa0b6ba06 100644
--- a/src/gpu/gl/builders/GrGLProgramBuilder.cpp
+++ b/src/gpu/gl/builders/GrGLProgramBuilder.cpp
@@ -237,9 +237,13 @@ void GrGLProgramBuilder::emitAndInstallProcs(GrGLSLExpr4* inputColor, GrGLSLExpr
if (GrProgramDesc::kAttribute_ColorInput == header.fColorInput) {
*inputColor = outputColor;
}
- if (GrProgramDesc::kUniform_ColorInput != header.fCoverageInput) {
- *inputCoverage = outputCoverage;
+
+ // We may have uniform coverage, if so we need to multiply the GPs output by the uniform
+ // coverage
+ if (GrProgramDesc::kUniform_ColorInput == header.fCoverageInput) {
+ fFS.codeAppendf("%s *= %s;", outputCoverage.c_str(), inputCoverage->c_str());
}
+ *inputCoverage = outputCoverage;
}
fFragmentProcessors.reset(SkNEW(GrGLInstalledFragProcs));