Index: include/gpu/GrPaint.h |
diff --git a/include/gpu/GrPaint.h b/include/gpu/GrPaint.h |
index 6a40a71ffcec425d4071e614a5397bda30796bea..04c64b8d589129d9aa92326c9577a52dda9801e5 100644 |
--- a/include/gpu/GrPaint.h |
+++ b/include/gpu/GrPaint.h |
@@ -12,6 +12,7 @@ |
#include "GrColor.h" |
#include "GrFragmentStage.h" |
+#include "GrXferProcessor.h" |
#include "SkXfermode.h" |
@@ -78,6 +79,12 @@ public: |
void setDither(bool dither) { fDither = dither; } |
bool isDither() const { return fDither; } |
+ const GrXPFactory* setXPFactory(const GrXPFactory* xpFactory) { |
+ SkASSERT(xpFactory); |
bsalomon
2014/11/26 21:02:44
This assert is done in SkRef().
egdaniel
2014/12/01 18:18:24
removed
|
+ fXPFactory.reset(SkRef(xpFactory)); |
+ return xpFactory; |
+ } |
+ |
/** |
* Appends an additional color processor to the color computation. |
*/ |
@@ -109,6 +116,9 @@ public: |
int numCoverageStages() const { return fCoverageStages.count(); } |
int numTotalStages() const { return this->numColorStages() + this->numCoverageStages(); } |
+ bool hasXPFactory() const { return SkToBool(fXPFactory.get()); } |
+ const GrXPFactory* getXPFactory() const { return fXPFactory.get(); } |
+ |
const GrFragmentStage& getColorStage(int s) const { return fColorStages[s]; } |
const GrFragmentStage& getCoverageStage(int s) const { return fCoverageStages[s]; } |
@@ -123,6 +133,9 @@ public: |
fColorStages = paint.fColorStages; |
fCoverageStages = paint.fCoverageStages; |
+ SkASSERT(paint.hasXPFactory()); |
bsalomon
2014/11/26 21:02:44
Why this assert?
egdaniel
2014/12/01 18:18:24
gone
|
+ fXPFactory.reset(SkRef(paint.getXPFactory())); |
+ |
return *this; |
} |
@@ -197,15 +210,16 @@ private: |
friend class GrContext; // To access above two functions |
friend class GrStencilAndCoverTextContext; // To access above two functions |
- SkSTArray<4, GrFragmentStage> fColorStages; |
- SkSTArray<2, GrFragmentStage> fCoverageStages; |
+ SkAutoTUnref<const GrXPFactory> fXPFactory; |
+ SkSTArray<4, GrFragmentStage> fColorStages; |
+ SkSTArray<2, GrFragmentStage> fCoverageStages; |
- GrBlendCoeff fSrcBlendCoeff; |
- GrBlendCoeff fDstBlendCoeff; |
- bool fAntiAlias; |
- bool fDither; |
+ GrBlendCoeff fSrcBlendCoeff; |
+ GrBlendCoeff fDstBlendCoeff; |
+ bool fAntiAlias; |
+ bool fDither; |
- GrColor fColor; |
+ GrColor fColor; |
void resetBlend() { |
fSrcBlendCoeff = kOne_GrBlendCoeff; |
@@ -221,10 +235,7 @@ private: |
fColor = GrColorPackRGBA(0xff, 0xff, 0xff, 0xff); |
} |
- void resetStages() { |
- fColorStages.reset(); |
- fCoverageStages.reset(); |
- } |
+ void resetStages(); |
}; |
#endif |