diff options
author | 2014-10-03 06:24:12 -0700 | |
---|---|---|
committer | 2014-10-03 06:24:12 -0700 | |
commit | 1a8ecdfb73a15de600d5779b75d7c4b61863c50b (patch) | |
tree | 60463286864f73929d9c2f1d730e44b7ddee3597 /src/gpu/effects/GrOvalEffect.cpp | |
parent | d751ac01a3a887bc2d71146fc7353a5f33730043 (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:
Committed: https://skia.googlesource.com/skia/+/3b8af078281a5a20f951b9fd84f38d92b8f6217b
Review URL: https://codereview.chromium.org/608253002
Diffstat (limited to 'src/gpu/effects/GrOvalEffect.cpp')
-rw-r--r-- | src/gpu/effects/GrOvalEffect.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/gpu/effects/GrOvalEffect.cpp b/src/gpu/effects/GrOvalEffect.cpp index 10fd8a6bf4..2a04e16611 100644 --- a/src/gpu/effects/GrOvalEffect.cpp +++ b/src/gpu/effects/GrOvalEffect.cpp @@ -32,8 +32,6 @@ public: typedef GLCircleEffect GLProcessor; - virtual void getConstantColorComponents(GrColor* color, uint32_t* validFlags) const SK_OVERRIDE; - virtual const GrBackendFragmentProcessorFactory& getFactory() const SK_OVERRIDE; private: @@ -41,6 +39,8 @@ private: virtual bool onIsEqual(const GrProcessor&) const SK_OVERRIDE; + virtual void onComputeInvariantOutput(InvariantOutput* inout) const SK_OVERRIDE; + SkPoint fCenter; SkScalar fRadius; GrPrimitiveEdgeType fEdgeType; @@ -56,8 +56,9 @@ GrFragmentProcessor* CircleEffect::Create(GrPrimitiveEdgeType edgeType, const Sk return SkNEW_ARGS(CircleEffect, (edgeType, center, radius)); } -void CircleEffect::getConstantColorComponents(GrColor* color, uint32_t* validFlags) const { - *validFlags = 0; +void CircleEffect::onComputeInvariantOutput(InvariantOutput* inout) const { + inout->fValidFlags = 0; + inout->fIsSingleComponent = false; } const GrBackendFragmentProcessorFactory& CircleEffect::getFactory() const { @@ -204,8 +205,6 @@ public: typedef GLEllipseEffect GLProcessor; - virtual void getConstantColorComponents(GrColor* color, uint32_t* validFlags) const SK_OVERRIDE; - virtual const GrBackendFragmentProcessorFactory& getFactory() const SK_OVERRIDE; private: @@ -213,6 +212,8 @@ private: virtual bool onIsEqual(const GrProcessor&) const SK_OVERRIDE; + virtual void onComputeInvariantOutput(InvariantOutput* inout) const SK_OVERRIDE; + SkPoint fCenter; SkVector fRadii; GrPrimitiveEdgeType fEdgeType; @@ -230,8 +231,9 @@ GrFragmentProcessor* EllipseEffect::Create(GrPrimitiveEdgeType edgeType, return SkNEW_ARGS(EllipseEffect, (edgeType, center, rx, ry)); } -void EllipseEffect::getConstantColorComponents(GrColor* color, uint32_t* validFlags) const { - *validFlags = 0; +void EllipseEffect::onComputeInvariantOutput(InvariantOutput* inout) const { + inout->fValidFlags = 0; + inout->fIsSingleComponent = false; } const GrBackendFragmentProcessorFactory& EllipseEffect::getFactory() const { |