Index: src/effects/gradients/SkGradientShader.cpp |
diff --git a/src/effects/gradients/SkGradientShader.cpp b/src/effects/gradients/SkGradientShader.cpp |
index d25873b438502c84bd3a880f84524ed6bff21df0..7999b9c75447cc1761f67007ec31cb741a35ee79 100644 |
--- a/src/effects/gradients/SkGradientShader.cpp |
+++ b/src/effects/gradients/SkGradientShader.cpp |
@@ -1217,12 +1217,13 @@ bool GrGradientEffect::onIsEqual(const GrProcessor& processor) const { |
return false; |
} |
-void GrGradientEffect::getConstantColorComponents(GrColor* color, uint32_t* validFlags) const { |
- if (fIsOpaque && (kA_GrColorComponentFlag & *validFlags) && 0xff == GrColorUnpackA(*color)) { |
- *validFlags = kA_GrColorComponentFlag; |
+void GrGradientEffect::onComputeInvarientOutput(InvarientOutput* invarientOutput) const { |
+ if (fIsOpaque && invarientOutput->hasOpaqueAlpha()) { |
+ invarientOutput->validFlags = kA_GrColorComponentFlag; |
} else { |
- *validFlags = 0; |
+ invarientOutput->validFlags = 0; |
} |
+ invarientOutput->isSingleComponent = false; |
} |
int GrGradientEffect::RandomGradientParams(SkRandom* random, |