Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(825)

Side by Side Diff: include/gpu/GrTextureParams.h

Issue 2002253002: Remove sRGB overrides on GrTextureParams. Use GrPaint flags instead. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/gpu/GrContext.cpp » ('j') | src/gpu/gl/GrGLGpu.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2015 Google Inc. 2 * Copyright 2015 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef GrTextureParams_DEFINED 8 #ifndef GrTextureParams_DEFINED
9 #define GrTextureParams_DEFINED 9 #define GrTextureParams_DEFINED
10 10
11 #include "GrTypes.h" 11 #include "GrTypes.h"
12 #include "SkShader.h" 12 #include "SkShader.h"
13 13
14 /** 14 /**
15 * Represents the filtering and tile modes used to access a texture. 15 * Represents the filtering and tile modes used to access a texture.
16 */ 16 */
17 class GrTextureParams { 17 class GrTextureParams {
18 public: 18 public:
19 static const GrTextureParams& ClampNoFilter() { 19 static const GrTextureParams& ClampNoFilter() {
20 static const GrTextureParams gParams; 20 static const GrTextureParams gParams;
21 return gParams; 21 return gParams;
22 } 22 }
23 static const GrTextureParams& ClampBilerp() { 23 static const GrTextureParams& ClampBilerp() {
24 static const GrTextureParams gParams(SkShader::kClamp_TileMode, kBilerp_ FilterMode); 24 static const GrTextureParams gParams(SkShader::kClamp_TileMode, kBilerp_ FilterMode);
25 return gParams; 25 return gParams;
26 } 26 }
27 static const GrTextureParams& ClampNoFilterForceAllowSRGB() {
28 static const GrTextureParams gParams(SkShader::kClamp_TileMode, kNone_Fi lterMode,
29 kForceAllowSRGB_SRGBMode);
30 return gParams;
31 }
32 27
33 GrTextureParams() { 28 GrTextureParams() {
34 this->reset(); 29 this->reset();
35 } 30 }
36 31
37 enum FilterMode { 32 enum FilterMode {
38 kNone_FilterMode, 33 kNone_FilterMode,
39 kBilerp_FilterMode, 34 kBilerp_FilterMode,
40 kMipMap_FilterMode 35 kMipMap_FilterMode
41 }; 36 };
42 37
43 enum SRGBMode {
44 kRespectDestination_SRGBMode,
45 kForceAllowSRGB_SRGBMode,
46 };
47
48 GrTextureParams(SkShader::TileMode tileXAndY, FilterMode filterMode) { 38 GrTextureParams(SkShader::TileMode tileXAndY, FilterMode filterMode) {
49 this->reset(tileXAndY, filterMode); 39 this->reset(tileXAndY, filterMode);
50 } 40 }
51 41
52 GrTextureParams(SkShader::TileMode tileXandY, FilterMode filterMode, SRGBMod e srgbMode) {
53 this->reset(tileXandY, filterMode, srgbMode);
54 }
55
56 GrTextureParams(const SkShader::TileMode tileModes[2], FilterMode filterMode ) { 42 GrTextureParams(const SkShader::TileMode tileModes[2], FilterMode filterMode ) {
57 this->reset(tileModes, filterMode); 43 this->reset(tileModes, filterMode);
58 } 44 }
59 45
60 GrTextureParams(const GrTextureParams& params) { 46 GrTextureParams(const GrTextureParams& params) {
61 *this = params; 47 *this = params;
62 } 48 }
63 49
64 GrTextureParams& operator= (const GrTextureParams& params) { 50 GrTextureParams& operator= (const GrTextureParams& params) {
65 fTileModes[0] = params.fTileModes[0]; 51 fTileModes[0] = params.fTileModes[0];
66 fTileModes[1] = params.fTileModes[1]; 52 fTileModes[1] = params.fTileModes[1];
67 fFilterMode = params.fFilterMode; 53 fFilterMode = params.fFilterMode;
68 fSRGBMode = params.fSRGBMode;
69 return *this; 54 return *this;
70 } 55 }
71 56
72 void reset() { 57 void reset() {
73 this->reset(SkShader::kClamp_TileMode, kNone_FilterMode); 58 this->reset(SkShader::kClamp_TileMode, kNone_FilterMode);
74 } 59 }
75 60
76 void reset(SkShader::TileMode tileXAndY, FilterMode filterMode) { 61 void reset(SkShader::TileMode tileXAndY, FilterMode filterMode) {
77 fTileModes[0] = fTileModes[1] = tileXAndY; 62 fTileModes[0] = fTileModes[1] = tileXAndY;
78 fFilterMode = filterMode; 63 fFilterMode = filterMode;
79 fSRGBMode = kRespectDestination_SRGBMode;
80 }
81
82 void reset(SkShader::TileMode tileXandY, FilterMode filterMode, SRGBMode srg bMode) {
83 fTileModes[0] = fTileModes[1] = tileXandY;
84 fFilterMode = filterMode;
85 fSRGBMode = srgbMode;
86 } 64 }
87 65
88 void reset(const SkShader::TileMode tileModes[2], FilterMode filterMode) { 66 void reset(const SkShader::TileMode tileModes[2], FilterMode filterMode) {
89 fTileModes[0] = tileModes[0]; 67 fTileModes[0] = tileModes[0];
90 fTileModes[1] = tileModes[1]; 68 fTileModes[1] = tileModes[1];
91 fFilterMode = filterMode; 69 fFilterMode = filterMode;
92 fSRGBMode = kRespectDestination_SRGBMode;
93 } 70 }
94 71
95 void setClampNoFilter() { 72 void setClampNoFilter() {
96 fTileModes[0] = fTileModes[1] = SkShader::kClamp_TileMode; 73 fTileModes[0] = fTileModes[1] = SkShader::kClamp_TileMode;
97 fFilterMode = kNone_FilterMode; 74 fFilterMode = kNone_FilterMode;
98 } 75 }
99 76
100 void setClamp() { 77 void setClamp() {
101 fTileModes[0] = fTileModes[1] = SkShader::kClamp_TileMode; 78 fTileModes[0] = fTileModes[1] = SkShader::kClamp_TileMode;
102 } 79 }
103 80
104 void setFilterMode(FilterMode filterMode) { fFilterMode = filterMode; } 81 void setFilterMode(FilterMode filterMode) { fFilterMode = filterMode; }
105 82
106 void setTileModeX(const SkShader::TileMode tm) { fTileModes[0] = tm; } 83 void setTileModeX(const SkShader::TileMode tm) { fTileModes[0] = tm; }
107 void setTileModeY(const SkShader::TileMode tm) { fTileModes[1] = tm; } 84 void setTileModeY(const SkShader::TileMode tm) { fTileModes[1] = tm; }
108 void setTileModeXAndY(const SkShader::TileMode tm) { fTileModes[0] = fTileMo des[1] = tm; } 85 void setTileModeXAndY(const SkShader::TileMode tm) { fTileModes[0] = fTileMo des[1] = tm; }
109 86
110 void setSRGBMode(SRGBMode srgbMode) { fSRGBMode = srgbMode; }
111
112 SkShader::TileMode getTileModeX() const { return fTileModes[0]; } 87 SkShader::TileMode getTileModeX() const { return fTileModes[0]; }
113 88
114 SkShader::TileMode getTileModeY() const { return fTileModes[1]; } 89 SkShader::TileMode getTileModeY() const { return fTileModes[1]; }
115 90
116 bool isTiled() const { 91 bool isTiled() const {
117 return SkShader::kClamp_TileMode != fTileModes[0] || 92 return SkShader::kClamp_TileMode != fTileModes[0] ||
118 SkShader::kClamp_TileMode != fTileModes[1]; 93 SkShader::kClamp_TileMode != fTileModes[1];
119 } 94 }
120 95
121 FilterMode filterMode() const { return fFilterMode; } 96 FilterMode filterMode() const { return fFilterMode; }
122 97
123 SRGBMode srgbMode() const { return fSRGBMode; }
124
125 bool operator== (const GrTextureParams& other) const { 98 bool operator== (const GrTextureParams& other) const {
126 return fTileModes[0] == other.fTileModes[0] && 99 return fTileModes[0] == other.fTileModes[0] &&
127 fTileModes[1] == other.fTileModes[1] && 100 fTileModes[1] == other.fTileModes[1] &&
128 fFilterMode == other.fFilterMode && 101 fFilterMode == other.fFilterMode;
129 fSRGBMode == other.fSRGBMode;
130 } 102 }
131 103
132 bool operator!= (const GrTextureParams& other) const { return !(*this == oth er); } 104 bool operator!= (const GrTextureParams& other) const { return !(*this == oth er); }
133 105
134 private: 106 private:
135 SkShader::TileMode fTileModes[2]; 107 SkShader::TileMode fTileModes[2];
136 FilterMode fFilterMode; 108 FilterMode fFilterMode;
137 SRGBMode fSRGBMode;
138 }; 109 };
139 #endif 110 #endif
OLDNEW
« no previous file with comments | « no previous file | src/gpu/GrContext.cpp » ('j') | src/gpu/gl/GrGLGpu.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698