Index: include/gpu/GrProcessor.h |
diff --git a/include/gpu/GrProcessor.h b/include/gpu/GrProcessor.h |
index a8188ca043b932ac0ae21fdee2390d175ab4d4c5..7991a069d1f8b11c6177480b2fb88ca1a1975677 100644 |
--- a/include/gpu/GrProcessor.h |
+++ b/include/gpu/GrProcessor.h |
@@ -175,27 +175,6 @@ public: |
*/ |
virtual const GrBackendProcessorFactory& getFactory() const = 0; |
- /** Returns true if this and other effect conservatively draw identically. It can only return |
- true when the two effects are of the same subclass (i.e. they return the same object from |
- from getFactory()). |
- |
- A return value of true from isEqual() should not be used to test whether the effects would |
- generate the same shader code. To test for identical code generation use the effects' keys |
- computed by the GrBackendEffectFactory. |
- */ |
- bool isEqual(const GrProcessor& other) const { |
- if (&this->getFactory() != &other.getFactory()) { |
- return false; |
- } |
- bool result = this->onIsEqual(other); |
-#ifdef SK_DEBUG |
- if (result) { |
- this->assertEquality(other); |
- } |
-#endif |
- return result; |
- } |
- |
/** Human-meaningful string to identify this effect; may be embedded |
in generated shader code. */ |
const char* name() const; |
@@ -246,13 +225,9 @@ protected: |
*/ |
void setWillReadFragmentPosition() { fWillReadFragmentPosition = true; } |
-private: |
- SkDEBUGCODE(void assertEquality(const GrProcessor& other) const;) |
+ SkDEBUGCODE(void assertTexturesEqual(const GrProcessor& other) const;) |
- /** Subclass implements this to support isEqual(). It will only be called if it is known that |
- the two effects are of the same subclass (i.e. they return the same object from |
- getFactory()).*/ |
- virtual bool onIsEqual(const GrProcessor& other) const = 0; |
+private: |
/** |
* Subclass implements this to support getConstantColorComponents(...). |
@@ -286,6 +261,26 @@ public: |
/** Will this effect read the source color value? */ |
bool willUseInputColor() const { return fWillUseInputColor; } |
+ /** Returns true if this and other effect conservatively draw identically. It can only return |
+ true when the two effects are of the same subclass (i.e. they return the same object from |
+ from getFactory()). |
+ |
+ A return value of true from isEqual() should not be used to test whether the effects would |
+ generate the same shader code. To test for identical code generation use the effects' keys |
+ computed by the GrBackendEffectFactory. */ |
+ bool isEqual(const GrFragmentProcessor& other) const { |
+ if (&this->getFactory() != &other.getFactory()) { |
+ return false; |
+ } |
+ bool result = this->onIsEqual(other); |
+#ifdef SK_DEBUG |
+ if (result) { |
+ this->assertTexturesEqual(other); |
+ } |
+#endif |
+ return result; |
+ } |
+ |
protected: |
/** |
* Fragment Processor subclasses call this from their constructor to register coordinate |
@@ -312,6 +307,11 @@ protected: |
void setWillNotUseInputColor() { fWillUseInputColor = false; } |
private: |
+ /** Subclass implements this to support isEqual(). It will only be called if it is known that |
+ the two effects are of the same subclass (i.e. they return the same object from |
+ getFactory()).*/ |
+ virtual bool onIsEqual(const GrFragmentProcessor& other) const = 0; |
+ |
SkSTArray<4, const GrCoordTransform*, true> fCoordTransforms; |
bool fWillReadDstColor; |
bool fWillUseInputColor; |