Index: include/gpu/GrTextureParams.h |
diff --git a/include/gpu/GrTextureParams.h b/include/gpu/GrTextureParams.h |
index 3186b1b027186b29df31361e7fd80eb6055d52f8..85bf26fab32539c2f4f7feac3cf8bcb5342bfa34 100644 |
--- a/include/gpu/GrTextureParams.h |
+++ b/include/gpu/GrTextureParams.h |
@@ -24,6 +24,11 @@ public: |
static const GrTextureParams gParams(SkShader::kClamp_TileMode, kBilerp_FilterMode); |
return gParams; |
} |
+ static const GrTextureParams& ClampNoFilterAllowSRGB() { |
+ static const GrTextureParams gParams(SkShader::kClamp_TileMode, kNone_FilterMode, |
+ kAllowSRGB_GrSRGBPolicy); |
+ return gParams; |
+ } |
GrTextureParams() { |
this->reset(); |
@@ -39,6 +44,10 @@ public: |
this->reset(tileXAndY, filterMode); |
} |
+ GrTextureParams(SkShader::TileMode tileXandY, FilterMode filterMode, GrSRGBPolicy srgbPolicy) { |
+ this->reset(tileXandY, filterMode, srgbPolicy); |
+ } |
+ |
GrTextureParams(const SkShader::TileMode tileModes[2], FilterMode filterMode) { |
this->reset(tileModes, filterMode); |
} |
@@ -51,6 +60,7 @@ public: |
fTileModes[0] = params.fTileModes[0]; |
fTileModes[1] = params.fTileModes[1]; |
fFilterMode = params.fFilterMode; |
+ fSRGBPolicy = params.fSRGBPolicy; |
return *this; |
} |
@@ -61,12 +71,20 @@ public: |
void reset(SkShader::TileMode tileXAndY, FilterMode filterMode) { |
fTileModes[0] = fTileModes[1] = tileXAndY; |
fFilterMode = filterMode; |
+ fSRGBPolicy = kUnknown_GrSRGBPolicy; |
+ } |
+ |
+ void reset(SkShader::TileMode tileXandY, FilterMode filterMode, GrSRGBPolicy srgbPolicy) { |
+ fTileModes[0] = fTileModes[1] = tileXandY; |
+ fFilterMode = filterMode; |
+ fSRGBPolicy = srgbPolicy; |
} |
void reset(const SkShader::TileMode tileModes[2], FilterMode filterMode) { |
fTileModes[0] = tileModes[0]; |
fTileModes[1] = tileModes[1]; |
fFilterMode = filterMode; |
+ fSRGBPolicy = kUnknown_GrSRGBPolicy; |
} |
void setClampNoFilter() { |
@@ -84,6 +102,8 @@ public: |
void setTileModeY(const SkShader::TileMode tm) { fTileModes[1] = tm; } |
void setTileModeXAndY(const SkShader::TileMode tm) { fTileModes[0] = fTileModes[1] = tm; } |
+ void setSRGBPolicy(GrSRGBPolicy srgbPolicy) { fSRGBPolicy = srgbPolicy; } |
+ |
SkShader::TileMode getTileModeX() const { return fTileModes[0]; } |
SkShader::TileMode getTileModeY() const { return fTileModes[1]; } |
@@ -95,10 +115,13 @@ public: |
FilterMode filterMode() const { return fFilterMode; } |
+ GrSRGBPolicy srgbPolicy() const { return fSRGBPolicy; } |
+ |
bool operator== (const GrTextureParams& other) const { |
return fTileModes[0] == other.fTileModes[0] && |
fTileModes[1] == other.fTileModes[1] && |
- fFilterMode == other.fFilterMode; |
+ fFilterMode == other.fFilterMode && |
+ fSRGBPolicy == other.fSRGBPolicy; |
} |
bool operator!= (const GrTextureParams& other) const { return !(*this == other); } |
@@ -106,5 +129,6 @@ public: |
private: |
SkShader::TileMode fTileModes[2]; |
FilterMode fFilterMode; |
+ GrSRGBPolicy fSRGBPolicy; |
}; |
#endif |