Index: src/gpu/effects/GrDistanceFieldTextureEffect.h |
diff --git a/src/gpu/effects/GrDistanceFieldTextureEffect.h b/src/gpu/effects/GrDistanceFieldTextureEffect.h |
index 38e41e5590d6d801304cdc3d5d37a6895b8907e6..ab84753fff85642eaa2e3920a81d7716b6d0c695 100644 |
--- a/src/gpu/effects/GrDistanceFieldTextureEffect.h |
+++ b/src/gpu/effects/GrDistanceFieldTextureEffect.h |
@@ -14,6 +14,24 @@ |
class GrGLDistanceFieldTextureEffect; |
class GrGLDistanceFieldLCDTextureEffect; |
+enum GrDistanceFieldEffectFlags { |
+ kSimilarity_DistanceFieldEffectFlag = 0x01, // ctm is similarity matrix |
+ kRectToRect_DistanceFieldEffectFlag = 0x02, // ctm maps rects to rects |
+ kUseLCD_DistanceFieldEffectFlag = 0x04, // use lcd text |
+ kBGR_DistanceFieldEffectFlag = 0x08, // lcd display has bgr order |
+ kPortrait_DistanceFieldEffectFlag = 0x10, // lcd display is in portrait mode (not used yet) |
+ |
+ kUniformScale_DistanceFieldEffectMask = kSimilarity_DistanceFieldEffectFlag | |
+ kRectToRect_DistanceFieldEffectFlag, |
+ // The subset of the flags relevant to GrDistanceFieldTextureEffect |
+ kNonLCD_DistanceFieldEffectMask = kSimilarity_DistanceFieldEffectFlag, |
+ // The subset of the flags relevant to GrDistanceFieldLCDTextureEffect |
+ kLCD_DistanceFieldEffectMask = kSimilarity_DistanceFieldEffectFlag | |
+ kRectToRect_DistanceFieldEffectFlag | |
+ kUseLCD_DistanceFieldEffectFlag | |
+ kBGR_DistanceFieldEffectFlag, |
+}; |
+ |
/** |
* The output color of this effect is a modulation of the input color and a sample from a |
* distance field texture (using a smoothed step function near 0.5). |
@@ -25,14 +43,14 @@ public: |
#ifdef SK_GAMMA_APPLY_TO_A8 |
static GrEffect* Create(GrTexture* tex, const GrTextureParams& params, |
GrTexture* gamma, const GrTextureParams& gammaParams, float lum, |
- bool similarity) { |
+ uint32_t flags) { |
return SkNEW_ARGS(GrDistanceFieldTextureEffect, (tex, params, gamma, gammaParams, lum, |
- similarity)); |
+ flags)); |
} |
#else |
static GrEffect* Create(GrTexture* tex, const GrTextureParams& params, |
- bool similarity) { |
- return SkNEW_ARGS(GrDistanceFieldTextureEffect, (tex, params, similarity)); |
+ uint32_t flags) { |
+ return SkNEW_ARGS(GrDistanceFieldTextureEffect, (tex, params, flags)); |
} |
#endif |
@@ -44,7 +62,7 @@ public: |
#ifdef SK_GAMMA_APPLY_TO_A8 |
float getLuminance() const { return fLuminance; } |
#endif |
- bool isSimilarity() const { return fIsSimilarity; } |
+ uint32_t getFlags() const { return fFlags; } |
typedef GrGLDistanceFieldTextureEffect GLEffect; |
@@ -55,7 +73,7 @@ private: |
#ifdef SK_GAMMA_APPLY_TO_A8 |
GrTexture* gamma, const GrTextureParams& gammaParams, float lum, |
#endif |
- bool uniformScale); |
+ uint32_t flags); |
virtual bool onIsEqual(const GrEffect& other) const SK_OVERRIDE; |
@@ -64,7 +82,7 @@ private: |
GrTextureAccess fGammaTextureAccess; |
float fLuminance; |
#endif |
- bool fIsSimilarity; |
+ uint32_t fFlags; |
GR_DECLARE_EFFECT_TEST; |
@@ -81,9 +99,9 @@ class GrDistanceFieldLCDTextureEffect : public GrVertexEffect { |
public: |
static GrEffect* Create(GrTexture* tex, const GrTextureParams& params, |
GrTexture* gamma, const GrTextureParams& gammaParams, |
- SkColor textColor, bool uniformScale, bool useBGR) { |
+ SkColor textColor, uint32_t flags) { |
return SkNEW_ARGS(GrDistanceFieldLCDTextureEffect, |
- (tex, params, gamma, gammaParams, textColor, uniformScale, useBGR)); |
+ (tex, params, gamma, gammaParams, textColor, flags)); |
} |
virtual ~GrDistanceFieldLCDTextureEffect() {} |
@@ -92,8 +110,7 @@ public: |
virtual void getConstantColorComponents(GrColor* color, uint32_t* validFlags) const SK_OVERRIDE; |
GrColor getTextColor() const { return fTextColor; } |
- bool isUniformScale() const { return fUniformScale; } |
- bool useBGR() const { return fUseBGR; } |
+ uint32_t getFlags() const { return fFlags; } |
typedef GrGLDistanceFieldLCDTextureEffect GLEffect; |
@@ -103,15 +120,14 @@ private: |
GrDistanceFieldLCDTextureEffect(GrTexture* texture, const GrTextureParams& params, |
GrTexture* gamma, const GrTextureParams& gammaParams, |
SkColor textColor, |
- bool uniformScale, bool useBGR); |
+ uint32_t flags); |
virtual bool onIsEqual(const GrEffect& other) const SK_OVERRIDE; |
GrTextureAccess fTextureAccess; |
GrTextureAccess fGammaTextureAccess; |
GrColor fTextColor; |
- bool fUniformScale; |
- bool fUseBGR; |
+ uint32_t fFlags; |
GR_DECLARE_EFFECT_TEST; |