| Index: src/gpu/gl/GrGLProgramDesc.cpp
|
| ===================================================================
|
| --- src/gpu/gl/GrGLProgramDesc.cpp (revision 8756)
|
| +++ src/gpu/gl/GrGLProgramDesc.cpp (working copy)
|
| @@ -103,7 +103,7 @@
|
| desc->fDstRead = 0;
|
| }
|
|
|
| - desc->fDualSrcOutput = kNone_DualSrcOutput;
|
| + desc->fCoverageOutput = kModulate_CoverageOutput;
|
|
|
| // 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).
|
| @@ -151,17 +151,22 @@
|
| GrDrawState::kCoverageAsAlpha_BlendOptFlag))) {
|
| if (kZero_GrBlendCoeff == dstCoeff) {
|
| // write the coverage value to second color
|
| - desc->fDualSrcOutput = kCoverage_DualSrcOutput;
|
| + desc->fCoverageOutput = kSecondaryCoverage_CoverageOutput;
|
| desc->fFirstCoverageStage = firstCoverageStage;
|
| } else if (kSA_GrBlendCoeff == dstCoeff) {
|
| // SA dst coeff becomes 1-(1-SA)*coverage when dst is partially covered.
|
| - desc->fDualSrcOutput = kCoverageISA_DualSrcOutput;
|
| + desc->fCoverageOutput = kSecondaryCoverageISA_CoverageOutput;
|
| desc->fFirstCoverageStage = firstCoverageStage;
|
| } else if (kSC_GrBlendCoeff == dstCoeff) {
|
| // SA dst coeff becomes 1-(1-SA)*coverage when dst is partially covered.
|
| - desc->fDualSrcOutput = kCoverageISC_DualSrcOutput;
|
| + desc->fCoverageOutput = kSecondaryCoverageISC_CoverageOutput;
|
| desc->fFirstCoverageStage = firstCoverageStage;
|
| }
|
| + } else if (readsDst &&
|
| + kOne_GrBlendCoeff == drawState.getSrcBlendCoeff() &&
|
| + kZero_GrBlendCoeff == drawState.getDstBlendCoeff()) {
|
| + desc->fCoverageOutput = kCombineWithDst_CoverageOutput;
|
| + desc->fFirstCoverageStage = firstCoverageStage;
|
| }
|
| }
|
|
|
|
|