| Index: src/gpu/gl/GrGLProgramDesc.cpp
|
| diff --git a/src/gpu/gl/GrGLProgramDesc.cpp b/src/gpu/gl/GrGLProgramDesc.cpp
|
| index 91ac266093daf2742b0a2cad706bd501d3ba0a1d..586fc3b77599d8a42118e9142c71888bbde524e4 100644
|
| --- a/src/gpu/gl/GrGLProgramDesc.cpp
|
| +++ b/src/gpu/gl/GrGLProgramDesc.cpp
|
| @@ -66,7 +66,8 @@ void GrGLProgramDesc::Build(const GrDrawState& drawState,
|
|
|
| bool colorIsTransBlack = SkToBool(blendOpts & GrDrawState::kEmitTransBlack_BlendOptFlag);
|
| bool colorIsSolidWhite = (blendOpts & GrDrawState::kEmitCoverage_BlendOptFlag) ||
|
| - (!requiresColorAttrib && 0xffffffff == drawState.getColor());
|
| + (!requiresColorAttrib && 0xffffffff == drawState.getColor()) ||
|
| + drawState.numColorStages() > 0 && !(*drawState.getColorStage(0)->getEffect())->getWillUseInputColor();
|
|
|
| int numEffects = (skipColor ? 0 : drawState.numColorStages()) +
|
| (skipCoverage ? 0 : drawState.numCoverageStages());
|
| @@ -103,7 +104,6 @@ void GrGLProgramDesc::Build(const GrDrawState& drawState,
|
| }
|
|
|
| header->fEmitsPointSize = isPoints;
|
| - header->fColorFilterXfermode = skipColor ? SkXfermode::kDst_Mode : drawState.getColorFilterMode();
|
|
|
| // Currently the experimental GS will only work with triangle prims (and it doesn't do anything
|
| // other than pass through values from the VS to the FS anyway).
|
| @@ -191,9 +191,10 @@ void GrGLProgramDesc::Build(const GrDrawState& drawState,
|
| if (!drawState.isCoverageDrawing() && !skipCoverage &&
|
| (drawState.numCoverageStages() > 0 || requiresCoverageAttrib)) {
|
| // color filter is applied between color/coverage computation
|
| - if (SkXfermode::kDst_Mode != header->fColorFilterXfermode) {
|
| + // TODO:
|
| + //if (SkXfermode::kDst_Mode != header->fColorFilterXfermode) {
|
| separateCoverageFromColor = true;
|
| - }
|
| + //}
|
|
|
| // If we're stenciling then we want to discard samples that have zero coverage
|
| if (drawState.getStencil().doesWrite()) {
|
|
|