Index: src/gpu/GrOptDrawState.cpp |
diff --git a/src/gpu/GrOptDrawState.cpp b/src/gpu/GrOptDrawState.cpp |
index 98a5689d534b72425a5df85f6409b64fd0f11dc6..e7d0495d3db80510b3ff56b83d5bf895b6b78d40 100644 |
--- a/src/gpu/GrOptDrawState.cpp |
+++ b/src/gpu/GrOptDrawState.cpp |
@@ -170,18 +170,19 @@ void GrOptDrawState::copyEffectiveColorStages(const GrDrawState& ds) { |
int firstColorStage = 0; |
// Set up color and flags for ConstantColorComponent checks |
- GrColor color; |
- uint32_t validComponentFlags; |
+ GrProcessor::InvarientOutput invarientOutput; |
+ invarientOutput.isSingleComponent = false; |
if (!this->hasColorVertexAttribute()) { |
- color = ds.getColor(); |
- validComponentFlags = kRGBA_GrColorComponentFlags; |
+ invarientOutput.color = ds.getColor(); |
+ invarientOutput.validFlags = kRGBA_GrColorComponentFlags; |
} else { |
if (ds.vertexColorsAreOpaque()) { |
- color = 0xFF << GrColor_SHIFT_A; |
- validComponentFlags = kA_GrColorComponentFlag; |
+ invarientOutput.color = 0xFF << GrColor_SHIFT_A; |
+ invarientOutput.validFlags = kA_GrColorComponentFlag; |
} else { |
- validComponentFlags = 0; |
- color = 0; // not strictly necessary but we get false alarms from tools about uninit. |
+ invarientOutput.validFlags = 0; |
+ // not strictly necessary but we get false alarms from tools about uninit. |
+ invarientOutput.color = 0; |
} |
} |
@@ -191,10 +192,10 @@ void GrOptDrawState::copyEffectiveColorStages(const GrDrawState& ds) { |
firstColorStage = i; |
fInputColorIsUsed = false; |
} |
- fp->getConstantColorComponents(&color, &validComponentFlags); |
- if (kRGBA_GrColorComponentFlags == validComponentFlags) { |
+ fp->computeInvarientOutput(&invarientOutput); |
+ if (kRGBA_GrColorComponentFlags == invarientOutput.validFlags) { |
firstColorStage = i + 1; |
- fColor = color; |
+ fColor = invarientOutput.color; |
fInputColorIsUsed = true; |
this->removeFixedFunctionVertexAttribs(0x1 << kColor_GrVertexAttribBinding); |
} |