Index: src/gpu/effects/GrDistanceFieldTextureEffect.h |
diff --git a/src/gpu/effects/GrDistanceFieldTextureEffect.h b/src/gpu/effects/GrDistanceFieldTextureEffect.h |
index e05af7684c59ff096ef50645a81ddf3594f4ea71..6be7f9eef36a86fa93385aa4c7f4e772bba1288a 100644 |
--- a/src/gpu/effects/GrDistanceFieldTextureEffect.h |
+++ b/src/gpu/effects/GrDistanceFieldTextureEffect.h |
@@ -49,10 +49,8 @@ public: |
#ifdef SK_GAMMA_APPLY_TO_A8 |
static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix, GrTexture* tex, |
const GrTextureParams& params, |
- GrTexture* gamma, const GrTextureParams& gammaParams, |
float lum, uint32_t flags, bool opaqueVertexColors) { |
- return SkNEW_ARGS(GrDistanceFieldTextureEffect, (color, viewMatrix, tex, params, gamma, |
- gammaParams, lum, |
+ return SkNEW_ARGS(GrDistanceFieldTextureEffect, (color, viewMatrix, tex, params, lum, |
flags, opaqueVertexColors)); |
} |
#else |
@@ -72,7 +70,7 @@ public: |
const Attribute* inColor() const { return fInColor; } |
const Attribute* inTextureCoords() const { return fInTextureCoords; } |
#ifdef SK_GAMMA_APPLY_TO_A8 |
- float getLuminance() const { return fLuminance; } |
+ float getDistanceAdjust() const { return fDistanceAdjust; } |
#endif |
uint32_t getFlags() const { return fFlags; } |
@@ -93,7 +91,7 @@ private: |
GrDistanceFieldTextureEffect(GrColor, const SkMatrix& viewMatrix, GrTexture* texture, |
const GrTextureParams& params, |
#ifdef SK_GAMMA_APPLY_TO_A8 |
- GrTexture* gamma, const GrTextureParams& gammaParams, float lum, |
+ float distanceAdjust, |
#endif |
uint32_t flags, bool opaqueVertexColors); |
@@ -101,12 +99,11 @@ private: |
void onGetInvariantOutputCoverage(GrInitInvariantOutput*) const override; |
- GrTextureAccess fTextureAccess; |
+ GrTextureAccess fTextureAccess; |
#ifdef SK_GAMMA_APPLY_TO_A8 |
- GrTextureAccess fGammaTextureAccess; |
- float fLuminance; |
+ float fDistanceAdjust; |
#endif |
- uint32_t fFlags; |
+ uint32_t fFlags; |
const Attribute* fInPosition; |
const Attribute* fInColor; |
const Attribute* fInTextureCoords; |
@@ -182,12 +179,26 @@ private: |
*/ |
class GrDistanceFieldLCDTextureEffect : public GrGeometryProcessor { |
public: |
+ struct DistanceAdjust { |
+ SkScalar fR, fG, fB; |
+ static DistanceAdjust Make(SkScalar r, SkScalar g, SkScalar b) { |
+ DistanceAdjust result; |
+ result.fR = r; result.fG = g; result.fB = b; |
+ return result; |
+ } |
+ bool operator==(const DistanceAdjust& wa) const { |
+ return (fR == wa.fR && fG == wa.fG && fB == wa.fB); |
+ } |
+ bool operator!=(const DistanceAdjust& wa) const { |
+ return !(*this == wa); |
+ } |
+ }; |
+ |
static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix, GrTexture* tex, |
- const GrTextureParams& params, GrTexture* gamma, |
- const GrTextureParams& gammaParams, |
- SkColor textColor, uint32_t flags) { |
+ const GrTextureParams& params, |
+ DistanceAdjust distanceAdjust, uint32_t flags) { |
return SkNEW_ARGS(GrDistanceFieldLCDTextureEffect, |
- (color, viewMatrix, tex, params, gamma, gammaParams, textColor, flags)); |
+ (color, viewMatrix, tex, params, distanceAdjust, flags)); |
} |
virtual ~GrDistanceFieldLCDTextureEffect() {} |
@@ -196,7 +207,7 @@ public: |
const Attribute* inPosition() const { return fInPosition; } |
const Attribute* inTextureCoords() const { return fInTextureCoords; } |
- GrColor getTextColor() const { return fTextColor; } |
+ DistanceAdjust getDistanceAdjust() const { return fDistanceAdjust; } |
uint32_t getFlags() const { return fFlags; } |
virtual void getGLProcessorKey(const GrBatchTracker& bt, |
@@ -215,17 +226,15 @@ public: |
private: |
GrDistanceFieldLCDTextureEffect(GrColor, const SkMatrix& viewMatrix, GrTexture* texture, |
const GrTextureParams& params, |
- GrTexture* gamma, const GrTextureParams& gammaParams, |
- SkColor textColor, uint32_t flags); |
+ DistanceAdjust wa, uint32_t flags); |
bool onIsEqual(const GrGeometryProcessor& other) const override; |
void onGetInvariantOutputCoverage(GrInitInvariantOutput*) const override; |
- GrTextureAccess fTextureAccess; |
- GrTextureAccess fGammaTextureAccess; |
- GrColor fTextColor; |
- uint32_t fFlags; |
+ GrTextureAccess fTextureAccess; |
+ DistanceAdjust fDistanceAdjust; |
+ uint32_t fFlags; |
const Attribute* fInPosition; |
const Attribute* fInTextureCoords; |