Chromium Code Reviews| Index: src/gpu/GrDrawState.cpp |
| diff --git a/src/gpu/GrDrawState.cpp b/src/gpu/GrDrawState.cpp |
| index c82c5adad1f771354e711e1ce149234d8ee77acf..a6e4a96083f7e350cd20b48c400d8c69f05e862e 100644 |
| --- a/src/gpu/GrDrawState.cpp |
| +++ b/src/gpu/GrDrawState.cpp |
| @@ -742,3 +742,20 @@ bool GrDrawState::srcAlphaWillBeOne() const { |
| return inoutColor.isOpaque(); |
| } |
| +bool GrDrawState::isUnblended() const { |
| + if (!this->hasSolidCoverage()) { |
| + return false; |
| + } |
| + |
| + bool srcAIsOne = this->srcAlphaWillBeOne(); |
| + GrBlendCoeff srcCoeff = this->getSrcBlendCoeff(); |
| + GrBlendCoeff dstCoeff = this->getDstBlendCoeff(); |
| + bool dstCoeffIsZero = kZero_GrBlendCoeff == dstCoeff || |
|
bsalomon
2014/11/11 20:49:56
The fact that the blend opts code doesn't directly
egdaniel
2014/11/11 21:05:55
Done.
|
| + (kISA_GrBlendCoeff == dstCoeff && srcAIsOne); |
| + if (kOne_GrBlendCoeff != srcCoeff || !dstCoeffIsZero || this->willEffectReadDstColor()) { |
| + return false; |
| + } |
| + |
| + return true; |
| +} |
| + |