diff options
author | joshualitt <joshualitt@chromium.org> | 2015-05-19 06:49:32 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-05-19 06:49:32 -0700 |
commit | cbfe91d82500f4ae8c3ff7bd74b3021a4b89fd84 (patch) | |
tree | 54dece088066b7ddd287ed5bb395fcfba2088b7b /src/gpu/effects/GrDistanceFieldGeoProc.h | |
parent | 9b4b91f5c222da584bb72d5880f654ae0081454d (diff) |
Preliminary attempt to remove batch tracker
BUG=skia:
Review URL: https://codereview.chromium.org/1139723004
Diffstat (limited to 'src/gpu/effects/GrDistanceFieldGeoProc.h')
-rw-r--r-- | src/gpu/effects/GrDistanceFieldGeoProc.h | 44 |
1 files changed, 27 insertions, 17 deletions
diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.h b/src/gpu/effects/GrDistanceFieldGeoProc.h index ec661cedb8..42c397dd6c 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) { + float lum, uint32_t flags, bool usesLocalCoords) { return SkNEW_ARGS(GrDistanceFieldA8TextGeoProc, (color, viewMatrix, tex, params, lum, - flags)); + flags, usesLocalCoords)); } #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 usesLocalCoords) { + return SkNEW_ARGS(GrDistanceFieldA8TextGeoProc, (color, viewMatrix, tex, params, flags, + usesLocalCoords)); } #endif @@ -69,7 +70,10 @@ public: const Attribute* inColor() const { return fInColor; } const Attribute* inTextureCoords() const { return fInTextureCoords; } GrColor color() const { return fColor; } + bool colorIgnored() const { return GrColor_ILLEGAL == fColor; } + bool hasVertexColor() const { return SkToBool(fInColor); } const SkMatrix& viewMatrix() const { return fViewMatrix; } + bool usesLocalCoords() const { return fUsesLocalCoords; } #ifdef SK_GAMMA_APPLY_TO_A8 float getDistanceAdjust() const { return fDistanceAdjust; } #endif @@ -82,15 +86,13 @@ public: virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, const GrGLSLCaps&) const override; - void initBatchTracker(GrBatchTracker* bt, const GrPipelineInfo& init) 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 usesLocalCoords); GrColor fColor; SkMatrix fViewMatrix; @@ -102,6 +104,7 @@ private: const Attribute* fInPosition; const Attribute* fInColor; const Attribute* fInTextureCoords; + bool fUsesLocalCoords; GR_DECLARE_GEOMETRY_PROCESSOR_TEST; @@ -119,8 +122,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 usesLocalCoords) { + return SkNEW_ARGS(GrDistanceFieldPathGeoProc, (color, viewMatrix, tex, params, flags, + usesLocalCoords)); } virtual ~GrDistanceFieldPathGeoProc() {} @@ -131,8 +135,11 @@ public: const Attribute* inColor() const { return fInColor; } const Attribute* inTextureCoords() const { return fInTextureCoords; } GrColor color() const { return fColor; } + bool colorIgnored() const { return GrColor_ILLEGAL == fColor; } + bool hasVertexColor() const { return SkToBool(fInColor); } const SkMatrix& viewMatrix() const { return fViewMatrix; } uint32_t getFlags() const { return fFlags; } + bool usesLocalCoords() const { return fUsesLocalCoords; } virtual void getGLProcessorKey(const GrBatchTracker& bt, const GrGLSLCaps& caps, @@ -141,11 +148,10 @@ public: virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, const GrGLSLCaps&) const override; - void initBatchTracker(GrBatchTracker* bt, const GrPipelineInfo& init) const override; - private: GrDistanceFieldPathGeoProc(GrColor, const SkMatrix& viewMatrix, GrTexture* texture, - const GrTextureParams& params, uint32_t flags); + const GrTextureParams& params, uint32_t flags, + bool usesLocalCoords); GrColor fColor; SkMatrix fViewMatrix; @@ -154,6 +160,7 @@ private: const Attribute* fInPosition; const Attribute* fInColor; const Attribute* fInTextureCoords; + bool fUsesLocalCoords; GR_DECLARE_GEOMETRY_PROCESSOR_TEST; @@ -185,9 +192,10 @@ public: static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix, GrTexture* tex, const GrTextureParams& params, - DistanceAdjust distanceAdjust, uint32_t flags) { + DistanceAdjust distanceAdjust, uint32_t flags, + bool usesLocalCoords) { return SkNEW_ARGS(GrDistanceFieldLCDTextGeoProc, - (color, viewMatrix, tex, params, distanceAdjust, flags)); + (color, viewMatrix, tex, params, distanceAdjust, flags, usesLocalCoords)); } virtual ~GrDistanceFieldLCDTextGeoProc() {} @@ -198,8 +206,10 @@ public: const Attribute* inTextureCoords() const { return fInTextureCoords; } DistanceAdjust getDistanceAdjust() const { return fDistanceAdjust; } GrColor color() const { return fColor; } + bool colorIgnored() const { return GrColor_ILLEGAL == fColor; } const SkMatrix& viewMatrix() const { return fViewMatrix; } uint32_t getFlags() const { return fFlags; } + bool usesLocalCoords() const { return fUsesLocalCoords; } virtual void getGLProcessorKey(const GrBatchTracker& bt, const GrGLSLCaps& caps, @@ -208,12 +218,11 @@ public: virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, const GrGLSLCaps&) const override; - void initBatchTracker(GrBatchTracker* bt, const GrPipelineInfo& init) const override; - private: GrDistanceFieldLCDTextGeoProc(GrColor, const SkMatrix& viewMatrix, GrTexture* texture, const GrTextureParams& params, - DistanceAdjust wa, uint32_t flags); + DistanceAdjust wa, uint32_t flags, + bool usesLocalCoords); GrColor fColor; SkMatrix fViewMatrix; @@ -222,6 +231,7 @@ private: uint32_t fFlags; const Attribute* fInPosition; const Attribute* fInTextureCoords; + bool fUsesLocalCoords; GR_DECLARE_GEOMETRY_PROCESSOR_TEST; |