| Index: src/gpu/GrOptDrawState.cpp
|
| diff --git a/src/gpu/GrOptDrawState.cpp b/src/gpu/GrOptDrawState.cpp
|
| index c8218d7a9020a617d2cc4ffae75dc497d885916f..b3d90f7310204f7958a2a29fb42050e640c11a0c 100644
|
| --- a/src/gpu/GrOptDrawState.cpp
|
| +++ b/src/gpu/GrOptDrawState.cpp
|
| @@ -61,23 +61,20 @@ GrOptDrawState::GrOptDrawState(const GrDrawState& drawState,
|
|
|
| // Copy Color Stages from DS to ODS
|
| if (firstColorStageIdx < drawState.numColorStages()) {
|
| - fColorStages.reset(&drawState.getColorStage(firstColorStageIdx),
|
| - drawState.numColorStages() - firstColorStageIdx);
|
| + fFragmentStages.reset(&drawState.getColorStage(firstColorStageIdx),
|
| + drawState.numColorStages() - firstColorStageIdx);
|
| } else {
|
| - fColorStages.reset();
|
| + fFragmentStages.reset();
|
| }
|
|
|
| + fNumColorStages = fFragmentStages.count();
|
| +
|
| // Copy Coverage Stages from DS to ODS
|
| - if (firstCoverageStageIdx < drawState.numCoverageStages() && separateCoverageFromColor) {
|
| - fCoverageStages.reset(&drawState.getCoverageStage(firstCoverageStageIdx),
|
| - drawState.numCoverageStages() - firstCoverageStageIdx);
|
| - } else {
|
| - fCoverageStages.reset();
|
| - if (firstCoverageStageIdx < drawState.numCoverageStages()) {
|
| - // TODO: Once we have flag to know if we only multiply on stages, only push coverage
|
| - // into color stages if everything is multiply
|
| - fColorStages.push_back_n(drawState.numCoverageStages() - firstCoverageStageIdx,
|
| - &drawState.getCoverageStage(firstCoverageStageIdx));
|
| + if (firstCoverageStageIdx < drawState.numCoverageStages()) {
|
| + fFragmentStages.push_back_n(drawState.numCoverageStages() - firstCoverageStageIdx,
|
| + &drawState.getCoverageStage(firstCoverageStageIdx));
|
| + if (!separateCoverageFromColor) {
|
| + fNumColorStages = fFragmentStages.count();
|
| }
|
| }
|
| };
|
| @@ -326,8 +323,8 @@ bool GrOptDrawState::isEqual(const GrOptDrawState& that) const {
|
| }
|
|
|
| if (this->getRenderTarget() != that.getRenderTarget() ||
|
| - this->fColorStages.count() != that.fColorStages.count() ||
|
| - this->fCoverageStages.count() != that.fCoverageStages.count() ||
|
| + this->fFragmentStages.count() != that.fFragmentStages.count() ||
|
| + this->fNumColorStages != that.fNumColorStages ||
|
| !this->fViewMatrix.cheapEqualTo(that.fViewMatrix) ||
|
| this->fSrcBlend != that.fSrcBlend ||
|
| this->fDstBlend != that.fDstBlend ||
|
| @@ -366,14 +363,8 @@ bool GrOptDrawState::isEqual(const GrOptDrawState& that) const {
|
| return false;
|
| }
|
|
|
| - for (int i = 0; i < this->numColorStages(); i++) {
|
| - if (!GrProcessorStage::AreCompatible(this->getColorStage(i), that.getColorStage(i),
|
| - explicitLocalCoords)) {
|
| - return false;
|
| - }
|
| - }
|
| - for (int i = 0; i < this->numCoverageStages(); i++) {
|
| - if (!GrProcessorStage::AreCompatible(this->getCoverageStage(i), that.getCoverageStage(i),
|
| + for (int i = 0; i < this->numFragmentStages(); i++) {
|
| + if (!GrProcessorStage::AreCompatible(this->getFragmentStage(i), that.getFragmentStage(i),
|
| explicitLocalCoords)) {
|
| return false;
|
| }
|
|
|