Index: src/gpu/effects/GrDistanceFieldGeoProc.h |
diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.h b/src/gpu/effects/GrDistanceFieldGeoProc.h |
index b611a7c8dcb3531f082bf9ffdbd0125778d090df..0ae0c0f7111efc9467e93f5107a67625c2bd032c 100644 |
--- a/src/gpu/effects/GrDistanceFieldGeoProc.h |
+++ b/src/gpu/effects/GrDistanceFieldGeoProc.h |
@@ -49,15 +49,16 @@ |
#ifdef SK_GAMMA_APPLY_TO_A8 |
static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix, |
GrTexture* tex, const GrTextureParams& params, |
- float lum, uint32_t flags) { |
- return SkNEW_ARGS(GrDistanceFieldA8TextGeoProc, (color, viewMatrix, tex, params, lum, |
- flags)); |
+ float lum, uint32_t flags, bool opaqueVertexColors) { |
+ return SkNEW_ARGS(GrDistanceFieldA8TextGeoProc, (color, viewMatrix, tex, |
+ params, lum, flags, opaqueVertexColors)); |
} |
#else |
static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix, |
GrTexture* tex, const GrTextureParams& params, |
- uint32_t flags) { |
- return SkNEW_ARGS(GrDistanceFieldA8TextGeoProc, (color, viewMatrix, tex, params, flags)); |
+ uint32_t flags, bool opaqueVertexColors) { |
+ return SkNEW_ARGS(GrDistanceFieldA8TextGeoProc, (color, viewMatrix, tex, |
+ params, flags, opaqueVertexColors)); |
} |
#endif |
@@ -82,13 +83,21 @@ |
void initBatchTracker(GrBatchTracker* bt, const GrPipelineInfo& init) const override; |
+ bool onCanMakeEqual(const GrBatchTracker&, |
+ const GrGeometryProcessor&, |
+ const GrBatchTracker&) const override; |
+ |
private: |
GrDistanceFieldA8TextGeoProc(GrColor, const SkMatrix& viewMatrix, |
GrTexture* texture, const GrTextureParams& params, |
#ifdef SK_GAMMA_APPLY_TO_A8 |
float distanceAdjust, |
#endif |
- uint32_t flags); |
+ uint32_t flags, bool opaqueVertexColors); |
+ |
+ bool onIsEqual(const GrGeometryProcessor& other) const override; |
+ |
+ void onGetInvariantOutputCoverage(GrInitInvariantOutput*) const override; |
GrTextureAccess fTextureAccess; |
#ifdef SK_GAMMA_APPLY_TO_A8 |
@@ -115,8 +124,9 @@ |
public: |
static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix, GrTexture* tex, |
const GrTextureParams& params, |
- uint32_t flags) { |
- return SkNEW_ARGS(GrDistanceFieldPathGeoProc, (color, viewMatrix, tex, params, flags)); |
+ uint32_t flags, bool opaqueVertexColors) { |
+ return SkNEW_ARGS(GrDistanceFieldPathGeoProc, (color, viewMatrix, tex, params, |
+ flags, opaqueVertexColors)); |
} |
virtual ~GrDistanceFieldPathGeoProc() {} |
@@ -137,9 +147,18 @@ |
void initBatchTracker(GrBatchTracker* bt, const GrPipelineInfo& init) const override; |
+ bool onCanMakeEqual(const GrBatchTracker&, |
+ const GrGeometryProcessor&, |
+ const GrBatchTracker&) const override; |
+ |
private: |
GrDistanceFieldPathGeoProc(GrColor, const SkMatrix& viewMatrix, GrTexture* texture, |
- const GrTextureParams& params, uint32_t flags); |
+ const GrTextureParams& params, uint32_t flags, |
+ bool opaqueVertexColors); |
+ |
+ bool onIsEqual(const GrGeometryProcessor& other) const override; |
+ |
+ void onGetInvariantOutputCoverage(GrInitInvariantOutput*) const override; |
GrTextureAccess fTextureAccess; |
uint32_t fFlags; |
@@ -200,10 +219,18 @@ |
void initBatchTracker(GrBatchTracker* bt, const GrPipelineInfo& init) const override; |
+ bool onCanMakeEqual(const GrBatchTracker&, |
+ const GrGeometryProcessor&, |
+ const GrBatchTracker&) const override; |
+ |
private: |
GrDistanceFieldLCDTextGeoProc(GrColor, const SkMatrix& viewMatrix, |
GrTexture* texture, const GrTextureParams& params, |
DistanceAdjust wa, uint32_t flags); |
+ |
+ bool onIsEqual(const GrGeometryProcessor& other) const override; |
+ |
+ void onGetInvariantOutputCoverage(GrInitInvariantOutput*) const override; |
GrTextureAccess fTextureAccess; |
DistanceAdjust fDistanceAdjust; |