diff options
author | joshualitt <joshualitt@google.com> | 2015-04-28 09:17:05 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-28 09:17:05 -0700 |
commit | 50cb76b2bb0ffa607a1409f77be0ae7d64e31436 (patch) | |
tree | af55e571828da1a7353457451bafab547079fa1f /src/gpu/effects/GrDistanceFieldGeoProc.h | |
parent | ef292a0901205b9785a30daae2c036aa34a970ca (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.h | 45 |
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; |