aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/effects/GrDistanceFieldGeoProc.h
diff options
context:
space:
mode:
authorGravatar joshualitt <joshualitt@google.com>2015-04-28 09:17:05 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-04-28 09:17:05 -0700
commit50cb76b2bb0ffa607a1409f77be0ae7d64e31436 (patch)
treeaf55e571828da1a7353457451bafab547079fa1f /src/gpu/effects/GrDistanceFieldGeoProc.h
parentef292a0901205b9785a30daae2c036aa34a970ca (diff)
Revert of removing equality / compute invariant loops from GrGeometryProcessors (patchset #2 id:20001 of https://codereview.chromium.org/1111603004/)
Reason for revert: breaks gl programs Original issue's description: > removing equality / compute invariant loops from GrGeometryProcessors > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/ef292a0901205b9785a30daae2c036aa34a970ca TBR=bsalomon@google.com,joshualitt@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1110993002
Diffstat (limited to 'src/gpu/effects/GrDistanceFieldGeoProc.h')
-rw-r--r--src/gpu/effects/GrDistanceFieldGeoProc.h45
1 files changed, 36 insertions, 9 deletions
diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.h b/src/gpu/effects/GrDistanceFieldGeoProc.h
index 44f028366c..362278f863 100644
--- a/src/gpu/effects/GrDistanceFieldGeoProc.h
+++ b/src/gpu/effects/GrDistanceFieldGeoProc.h
@@ -49,15 +49,16 @@ public:
#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 @@ public:
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 @@ class GrDistanceFieldPathGeoProc : public GrGeometryProcessor {
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 @@ public:
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,11 +219,19 @@ public:
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;
uint32_t fFlags;