| Index: src/gpu/effects/GrDistanceFieldGeoProc.h
|
| diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.h b/src/gpu/effects/GrDistanceFieldGeoProc.h
|
| index ec661cedb8848254b22bf2c23efc29fa2038a84c..42c397dd6cb601dc56cf5ab893faa24074dbf06a 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;
|
|
|
|
|