diff options
author | 2014-10-02 09:57:48 -0700 | |
---|---|---|
committer | 2014-10-02 09:57:48 -0700 | |
commit | 3b8af078281a5a20f951b9fd84f38d92b8f6217b (patch) | |
tree | 92c250b9011e2ee5e0e1a2517e7c7ee550853ddc /src/effects/gradients | |
parent | 8f8c25eabb97da8eda488895f04f2d12cb5ea4cf (diff) |
Add isSingleComponent bool to getConstantColorComponent
Initial step to allowing effects to use/output 1 or 4 color/coverage components. This cl doesn't change any current logic and all effects still assume they are working with 4 components.
BUG=skia:
Review URL: https://codereview.chromium.org/608253002
Diffstat (limited to 'src/effects/gradients')
-rw-r--r-- | src/effects/gradients/SkGradientShader.cpp | 9 | ||||
-rw-r--r-- | src/effects/gradients/SkGradientShaderPriv.h | 4 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/effects/gradients/SkGradientShader.cpp b/src/effects/gradients/SkGradientShader.cpp index d25873b438..89b323a701 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::onComputeInvariantOutput(InvariantOutput* inout) const { + if (fIsOpaque && inout->isOpaque()) { + inout->fValidFlags = kA_GrColorComponentFlag; } else { - *validFlags = 0; + inout->fValidFlags = 0; } + inout->fIsSingleComponent = false; } int GrGradientEffect::RandomGradientParams(SkRandom* random, diff --git a/src/effects/gradients/SkGradientShaderPriv.h b/src/effects/gradients/SkGradientShaderPriv.h index b81b5626ba..33d8adde05 100644 --- a/src/effects/gradients/SkGradientShaderPriv.h +++ b/src/effects/gradients/SkGradientShaderPriv.h @@ -342,8 +342,6 @@ public: bool useAtlas() const { return SkToBool(-1 != fRow); } SkScalar getYCoord() const { return fYCoord; }; - virtual void getConstantColorComponents(GrColor* color, uint32_t* validFlags) const SK_OVERRIDE; - SkGradientShaderBase::GpuColorType getColorType() const { return fColorType; } enum PremulType { @@ -376,6 +374,8 @@ protected: virtual bool onIsEqual(const GrProcessor&) const SK_OVERRIDE; + virtual void onComputeInvariantOutput(InvariantOutput* inout) const SK_OVERRIDE; + const GrCoordTransform& getCoordTransform() const { return fCoordTransform; } private: |