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

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

Issue 1789663002: sRGB support in Ganesh. Several pieces: (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Rebase Created 4 years, 9 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
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& ClampNoFilterAllowSRGB() {
28 static const GrTextureParams gParams(SkShader::kClamp_TileMode, kNone_Fi lterMode,
29 kAllowSRGB_GrSRGBPolicy);
30 return gParams;
31 }
27 32
28 GrTextureParams() { 33 GrTextureParams() {
29 this->reset(); 34 this->reset();
30 } 35 }
31 36
32 enum FilterMode { 37 enum FilterMode {
33 kNone_FilterMode, 38 kNone_FilterMode,
34 kBilerp_FilterMode, 39 kBilerp_FilterMode,
35 kMipMap_FilterMode 40 kMipMap_FilterMode
36 }; 41 };
37 42
38 GrTextureParams(SkShader::TileMode tileXAndY, FilterMode filterMode) { 43 GrTextureParams(SkShader::TileMode tileXAndY, FilterMode filterMode) {
39 this->reset(tileXAndY, filterMode); 44 this->reset(tileXAndY, filterMode);
40 } 45 }
41 46
47 GrTextureParams(SkShader::TileMode tileXandY, FilterMode filterMode, GrSRGBP olicy srgbPolicy) {
48 this->reset(tileXandY, filterMode, srgbPolicy);
49 }
50
42 GrTextureParams(const SkShader::TileMode tileModes[2], FilterMode filterMode ) { 51 GrTextureParams(const SkShader::TileMode tileModes[2], FilterMode filterMode ) {
43 this->reset(tileModes, filterMode); 52 this->reset(tileModes, filterMode);
44 } 53 }
45 54
46 GrTextureParams(const GrTextureParams& params) { 55 GrTextureParams(const GrTextureParams& params) {
47 *this = params; 56 *this = params;
48 } 57 }
49 58
50 GrTextureParams& operator= (const GrTextureParams& params) { 59 GrTextureParams& operator= (const GrTextureParams& params) {
51 fTileModes[0] = params.fTileModes[0]; 60 fTileModes[0] = params.fTileModes[0];
52 fTileModes[1] = params.fTileModes[1]; 61 fTileModes[1] = params.fTileModes[1];
53 fFilterMode = params.fFilterMode; 62 fFilterMode = params.fFilterMode;
63 fSRGBPolicy = params.fSRGBPolicy;
54 return *this; 64 return *this;
55 } 65 }
56 66
57 void reset() { 67 void reset() {
58 this->reset(SkShader::kClamp_TileMode, kNone_FilterMode); 68 this->reset(SkShader::kClamp_TileMode, kNone_FilterMode);
59 } 69 }
60 70
61 void reset(SkShader::TileMode tileXAndY, FilterMode filterMode) { 71 void reset(SkShader::TileMode tileXAndY, FilterMode filterMode) {
62 fTileModes[0] = fTileModes[1] = tileXAndY; 72 fTileModes[0] = fTileModes[1] = tileXAndY;
63 fFilterMode = filterMode; 73 fFilterMode = filterMode;
74 fSRGBPolicy = kUnknown_GrSRGBPolicy;
75 }
76
77 void reset(SkShader::TileMode tileXandY, FilterMode filterMode, GrSRGBPolicy srgbPolicy) {
78 fTileModes[0] = fTileModes[1] = tileXandY;
79 fFilterMode = filterMode;
80 fSRGBPolicy = srgbPolicy;
64 } 81 }
65 82
66 void reset(const SkShader::TileMode tileModes[2], FilterMode filterMode) { 83 void reset(const SkShader::TileMode tileModes[2], FilterMode filterMode) {
67 fTileModes[0] = tileModes[0]; 84 fTileModes[0] = tileModes[0];
68 fTileModes[1] = tileModes[1]; 85 fTileModes[1] = tileModes[1];
69 fFilterMode = filterMode; 86 fFilterMode = filterMode;
87 fSRGBPolicy = kUnknown_GrSRGBPolicy;
70 } 88 }
71 89
72 void setClampNoFilter() { 90 void setClampNoFilter() {
73 fTileModes[0] = fTileModes[1] = SkShader::kClamp_TileMode; 91 fTileModes[0] = fTileModes[1] = SkShader::kClamp_TileMode;
74 fFilterMode = kNone_FilterMode; 92 fFilterMode = kNone_FilterMode;
75 } 93 }
76 94
77 void setClamp() { 95 void setClamp() {
78 fTileModes[0] = fTileModes[1] = SkShader::kClamp_TileMode; 96 fTileModes[0] = fTileModes[1] = SkShader::kClamp_TileMode;
79 } 97 }
80 98
81 void setFilterMode(FilterMode filterMode) { fFilterMode = filterMode; } 99 void setFilterMode(FilterMode filterMode) { fFilterMode = filterMode; }
82 100
83 void setTileModeX(const SkShader::TileMode tm) { fTileModes[0] = tm; } 101 void setTileModeX(const SkShader::TileMode tm) { fTileModes[0] = tm; }
84 void setTileModeY(const SkShader::TileMode tm) { fTileModes[1] = tm; } 102 void setTileModeY(const SkShader::TileMode tm) { fTileModes[1] = tm; }
85 void setTileModeXAndY(const SkShader::TileMode tm) { fTileModes[0] = fTileMo des[1] = tm; } 103 void setTileModeXAndY(const SkShader::TileMode tm) { fTileModes[0] = fTileMo des[1] = tm; }
86 104
105 void setSRGBPolicy(GrSRGBPolicy srgbPolicy) { fSRGBPolicy = srgbPolicy; }
106
87 SkShader::TileMode getTileModeX() const { return fTileModes[0]; } 107 SkShader::TileMode getTileModeX() const { return fTileModes[0]; }
88 108
89 SkShader::TileMode getTileModeY() const { return fTileModes[1]; } 109 SkShader::TileMode getTileModeY() const { return fTileModes[1]; }
90 110
91 bool isTiled() const { 111 bool isTiled() const {
92 return SkShader::kClamp_TileMode != fTileModes[0] || 112 return SkShader::kClamp_TileMode != fTileModes[0] ||
93 SkShader::kClamp_TileMode != fTileModes[1]; 113 SkShader::kClamp_TileMode != fTileModes[1];
94 } 114 }
95 115
96 FilterMode filterMode() const { return fFilterMode; } 116 FilterMode filterMode() const { return fFilterMode; }
97 117
118 GrSRGBPolicy srgbPolicy() const { return fSRGBPolicy; }
119
98 bool operator== (const GrTextureParams& other) const { 120 bool operator== (const GrTextureParams& other) const {
99 return fTileModes[0] == other.fTileModes[0] && 121 return fTileModes[0] == other.fTileModes[0] &&
100 fTileModes[1] == other.fTileModes[1] && 122 fTileModes[1] == other.fTileModes[1] &&
101 fFilterMode == other.fFilterMode; 123 fFilterMode == other.fFilterMode &&
124 fSRGBPolicy == other.fSRGBPolicy;
102 } 125 }
103 126
104 bool operator!= (const GrTextureParams& other) const { return !(*this == oth er); } 127 bool operator!= (const GrTextureParams& other) const { return !(*this == oth er); }
105 128
106 private: 129 private:
107 SkShader::TileMode fTileModes[2]; 130 SkShader::TileMode fTileModes[2];
108 FilterMode fFilterMode; 131 FilterMode fFilterMode;
132 GrSRGBPolicy fSRGBPolicy;
109 }; 133 };
110 #endif 134 #endif
OLDNEW
« no previous file with comments | « include/gpu/GrColor.h ('k') | include/gpu/GrTypes.h » ('j') | include/gpu/GrTypes.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698