diff options
author | joshualitt <joshualitt@chromium.org> | 2014-12-10 14:23:40 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-12-10 14:23:40 -0800 |
commit | bd528cdb51c4a64c2daead66f152b4034cebf752 (patch) | |
tree | 1591b9853e3f971dd9990ac8afdfbdf3c880fc47 /src | |
parent | b2fe5407df616e00e41d380393673136d8f9f1e7 (diff) |
fix for chrome bug with sub pixel hairlines
BUG=skia:
Review URL: https://codereview.chromium.org/796573002
Diffstat (limited to 'src')
-rw-r--r-- | src/gpu/gl/builders/GrGLProgramBuilder.cpp | 8 |
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)); |