Chromium Code Reviews| Index: include/gpu/GrProcessor.h |
| diff --git a/include/gpu/GrProcessor.h b/include/gpu/GrProcessor.h |
| index 5350015d67567dde0f9c29bd5416b0ea514801f1..bbcc919caa525ec545e1b4337a4030df5848bcf9 100644 |
| --- a/include/gpu/GrProcessor.h |
| +++ b/include/gpu/GrProcessor.h |
| @@ -38,7 +38,8 @@ public: |
| virtual ~GrProcessor(); |
| struct InvariantOutput{ |
| - InvariantOutput() : fColor(0), fValidFlags(0), fIsSingleComponent(false) {} |
| + InvariantOutput() : fColor(0), fValidFlags(0), fIsSingleComponent(false), |
| + fInputIsOnlyModulated(true) {} |
|
bsalomon
2014/10/13 19:52:49
I seems like we should use multiply rather than mo
egdaniel
2014/10/13 20:26:47
Done.
|
| void mulByUnknownOpaqueColor() { |
| if (this->isOpaque()) { |
| @@ -53,15 +54,15 @@ public: |
| void mulByUnknownColor() { |
| if (this->hasZeroAlpha()) { |
| - this->setToTransparentBlack(); |
| + this->setToTransparentBlackPriv(); |
| } else { |
| - this->setToUnknown(); |
| + this->setToUnknownPriv(); |
| } |
| } |
| void mulByUnknownAlpha() { |
| if (this->hasZeroAlpha()) { |
| - this->setToTransparentBlack(); |
| + this->setToTransparentBlackPriv(); |
| } else { |
| // We don't need to change fIsSingleComponent in this case |
| fValidFlags = 0; |
| @@ -74,20 +75,20 @@ public: |
| } |
| void setToTransparentBlack() { |
| - fValidFlags = kRGBA_GrColorComponentFlags; |
| - fColor = 0; |
| - fIsSingleComponent = true; |
| + this->setToTransparentBlackPriv(); |
| + fInputIsOnlyModulated = false; |
| } |
| void setToOther(uint8_t validFlags, GrColor color) { |
| fValidFlags = validFlags; |
| fColor = color; |
| fIsSingleComponent = false; |
| + fInputIsOnlyModulated = false; |
| } |
| void setToUnknown() { |
| - fValidFlags = 0; |
| - fIsSingleComponent = false; |
| + this->setToUnknownPriv(); |
| + fInputIsOnlyModulated = false; |
| } |
| bool isOpaque() const { |
| @@ -108,6 +109,17 @@ public: |
| SkDEBUGCODE(void validate() const;) |
| private: |
| + void setToTransparentBlackPriv() { |
| + fValidFlags = kRGBA_GrColorComponentFlags; |
| + fColor = 0; |
| + fIsSingleComponent = true; |
| + } |
| + |
| + void setToUnknownPriv() { |
|
bsalomon
2014/10/13 19:52:49
usually term such things internalSetToUnknown().
egdaniel
2014/10/13 20:26:47
Done.
|
| + fValidFlags = 0; |
| + fIsSingleComponent = false; |
| + } |
| + |
| bool hasZeroAlpha() const { |
| return ((fValidFlags & kA_GrColorComponentFlag) && 0 == GrColorUnpackA(fColor)); |
| } |
| @@ -128,6 +140,7 @@ public: |
| GrColor fColor; |
| uint32_t fValidFlags; |
| bool fIsSingleComponent; |
| + bool fInputIsOnlyModulated; |
| }; |
| /** |