| Index: src/gpu/glsl/GrGLSLXferProcessor.cpp
|
| diff --git a/src/gpu/glsl/GrGLSLXferProcessor.cpp b/src/gpu/glsl/GrGLSLXferProcessor.cpp
|
| index 81bd015718c8e8ac7aeea99b76998409d8c252b2..e109775aced5e2bf16db58e998f85c20a8351895 100644
|
| --- a/src/gpu/glsl/GrGLSLXferProcessor.cpp
|
| +++ b/src/gpu/glsl/GrGLSLXferProcessor.cpp
|
| @@ -88,3 +88,21 @@ void GrGLSLXferProcessor::setData(const GrGLSLProgramDataManager& pdm, const GrX
|
| this->onSetData(pdm, xp);
|
| }
|
|
|
| +void GrGLSLXferProcessor::DefaultCoverageModulation(GrGLSLXPFragmentBuilder* fragBuilder,
|
| + const char* srcCoverage,
|
| + const char* dstColor,
|
| + const char* outColor,
|
| + const char* outColorSecondary,
|
| + const GrXferProcessor& proc) {
|
| + if (proc.dstReadUsesMixedSamples()) {
|
| + if (srcCoverage) {
|
| + fragBuilder->codeAppendf("%s *= %s;", outColor, srcCoverage);
|
| + fragBuilder->codeAppendf("%s = %s;", outColorSecondary, srcCoverage);
|
| + } else {
|
| + fragBuilder->codeAppendf("%s = vec4(1.0);", outColorSecondary);
|
| + }
|
| + } else if (srcCoverage) {
|
| + fragBuilder->codeAppendf("%s = %s * %s + (vec4(1.0) - %s) * %s;",
|
| + outColor, srcCoverage, outColor, srcCoverage, dstColor);
|
| + }
|
| +}
|
|
|