| Index: src/gpu/GrDrawState.cpp
|
| diff --git a/src/gpu/GrDrawState.cpp b/src/gpu/GrDrawState.cpp
|
| index c82c5adad1f771354e711e1ce149234d8ee77acf..4341d00ccedc367381341d795e0a73b7b07776b2 100644
|
| --- a/src/gpu/GrDrawState.cpp
|
| +++ b/src/gpu/GrDrawState.cpp
|
| @@ -742,3 +742,23 @@ bool GrDrawState::srcAlphaWillBeOne() const {
|
| return inoutColor.isOpaque();
|
| }
|
|
|
| +bool GrDrawState::willBlendWithDst() const {
|
| + if (!this->hasSolidCoverage()) {
|
| + return true;
|
| + }
|
| +
|
| + bool srcAIsOne = this->srcAlphaWillBeOne();
|
| + GrBlendCoeff srcCoeff = this->getSrcBlendCoeff();
|
| + GrBlendCoeff dstCoeff = this->getDstBlendCoeff();
|
| + if (kISA_GrBlendCoeff == dstCoeff && srcAIsOne) {
|
| + dstCoeff = kZero_GrBlendCoeff;
|
| + }
|
| + if (kOne_GrBlendCoeff != srcCoeff ||
|
| + kZero_GrBlendCoeff != dstCoeff ||
|
| + this->willEffectReadDstColor()) {
|
| + return true;
|
| + }
|
| +
|
| + return false;
|
| +}
|
| +
|
|
|