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

Side by Side Diff: src/gpu/effects/GrDistanceFieldTextureEffect.h

Issue 820783005: More changes to bring together path / geo procs (Closed) Base URL: https://skia.googlesource.com/skia.git@lc1
Patch Set: dm fix Created 5 years, 11 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 | « src/gpu/effects/GrDashingEffect.cpp ('k') | src/gpu/effects/GrDistanceFieldTextureEffect.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 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 GrDistanceFieldTextureEffect_DEFINED 8 #ifndef GrDistanceFieldTextureEffect_DEFINED
9 #define GrDistanceFieldTextureEffect_DEFINED 9 #define GrDistanceFieldTextureEffect_DEFINED
10 10
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 uint32_t flags, bool opaqueVertexColors) { 61 uint32_t flags, bool opaqueVertexColors) {
62 return SkNEW_ARGS(GrDistanceFieldTextureEffect, (color, viewMatrix, tex , params, flags, 62 return SkNEW_ARGS(GrDistanceFieldTextureEffect, (color, viewMatrix, tex , params, flags,
63 opaqueVertexColors)); 63 opaqueVertexColors));
64 } 64 }
65 #endif 65 #endif
66 66
67 virtual ~GrDistanceFieldTextureEffect() {} 67 virtual ~GrDistanceFieldTextureEffect() {}
68 68
69 const char* name() const SK_OVERRIDE { return "DistanceFieldTexture"; } 69 const char* name() const SK_OVERRIDE { return "DistanceFieldTexture"; }
70 70
71 const GrAttribute* inPosition() const { return fInPosition; } 71 const Attribute* inPosition() const { return fInPosition; }
72 const GrAttribute* inColor() const { return fInColor; } 72 const Attribute* inColor() const { return fInColor; }
73 const GrAttribute* inTextureCoords() const { return fInTextureCoords; } 73 const Attribute* inTextureCoords() const { return fInTextureCoords; }
74 #ifdef SK_GAMMA_APPLY_TO_A8 74 #ifdef SK_GAMMA_APPLY_TO_A8
75 float getLuminance() const { return fLuminance; } 75 float getLuminance() const { return fLuminance; }
76 #endif 76 #endif
77 uint32_t getFlags() const { return fFlags; } 77 uint32_t getFlags() const { return fFlags; }
78 78
79 virtual void getGLProcessorKey(const GrBatchTracker& bt, 79 virtual void getGLProcessorKey(const GrBatchTracker& bt,
80 const GrGLCaps& caps, 80 const GrGLCaps& caps,
81 GrProcessorKeyBuilder* b) const SK_OVERRIDE; 81 GrProcessorKeyBuilder* b) const SK_OVERRIDE;
82 82
83 virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, 83 virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt,
(...skipping 16 matching lines...) Expand all
100 bool onIsEqual(const GrGeometryProcessor& other) const SK_OVERRIDE; 100 bool onIsEqual(const GrGeometryProcessor& other) const SK_OVERRIDE;
101 101
102 void onGetInvariantOutputCoverage(GrInitInvariantOutput*) const SK_OVERRIDE; 102 void onGetInvariantOutputCoverage(GrInitInvariantOutput*) const SK_OVERRIDE;
103 103
104 GrTextureAccess fTextureAccess; 104 GrTextureAccess fTextureAccess;
105 #ifdef SK_GAMMA_APPLY_TO_A8 105 #ifdef SK_GAMMA_APPLY_TO_A8
106 GrTextureAccess fGammaTextureAccess; 106 GrTextureAccess fGammaTextureAccess;
107 float fLuminance; 107 float fLuminance;
108 #endif 108 #endif
109 uint32_t fFlags; 109 uint32_t fFlags;
110 const GrAttribute* fInPosition; 110 const Attribute* fInPosition;
111 const GrAttribute* fInColor; 111 const Attribute* fInColor;
112 const GrAttribute* fInTextureCoords; 112 const Attribute* fInTextureCoords;
113 113
114 GR_DECLARE_GEOMETRY_PROCESSOR_TEST; 114 GR_DECLARE_GEOMETRY_PROCESSOR_TEST;
115 115
116 typedef GrGeometryProcessor INHERITED; 116 typedef GrGeometryProcessor INHERITED;
117 }; 117 };
118 118
119 119
120 /** 120 /**
121 * The output color of this effect is a modulation of the input color and a sampl e from a 121 * The output color of this effect is a modulation of the input color and a sampl e from a
122 * distance field texture (using a smoothed step function near 0.5). 122 * distance field texture (using a smoothed step function near 0.5).
123 * It allows explicit specification of the filtering and wrap modes (GrTexturePar ams). The input 123 * It allows explicit specification of the filtering and wrap modes (GrTexturePar ams). The input
124 * coords are a custom attribute. No gamma correct blending is applied. 124 * coords are a custom attribute. No gamma correct blending is applied.
125 */ 125 */
126 class GrDistanceFieldNoGammaTextureEffect : public GrGeometryProcessor { 126 class GrDistanceFieldNoGammaTextureEffect : public GrGeometryProcessor {
127 public: 127 public:
128 static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix , GrTexture* tex, 128 static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix , GrTexture* tex,
129 const GrTextureParams& params, 129 const GrTextureParams& params,
130 uint32_t flags, bool opaqueVertexColors) { 130 uint32_t flags, bool opaqueVertexColors) {
131 return SkNEW_ARGS(GrDistanceFieldNoGammaTextureEffect, (color, viewMatri x, tex, params, 131 return SkNEW_ARGS(GrDistanceFieldNoGammaTextureEffect, (color, viewMatri x, tex, params,
132 flags, opaqueVer texColors)); 132 flags, opaqueVer texColors));
133 } 133 }
134 134
135 virtual ~GrDistanceFieldNoGammaTextureEffect() {} 135 virtual ~GrDistanceFieldNoGammaTextureEffect() {}
136 136
137 const char* name() const SK_OVERRIDE { return "DistanceFieldTexture"; } 137 const char* name() const SK_OVERRIDE { return "DistanceFieldTexture"; }
138 138
139 const GrAttribute* inPosition() const { return fInPosition; } 139 const Attribute* inPosition() const { return fInPosition; }
140 const GrAttribute* inColor() const { return fInColor; } 140 const Attribute* inColor() const { return fInColor; }
141 const GrAttribute* inTextureCoords() const { return fInTextureCoords; } 141 const Attribute* inTextureCoords() const { return fInTextureCoords; }
142 uint32_t getFlags() const { return fFlags; } 142 uint32_t getFlags() const { return fFlags; }
143 143
144 virtual void getGLProcessorKey(const GrBatchTracker& bt, 144 virtual void getGLProcessorKey(const GrBatchTracker& bt,
145 const GrGLCaps& caps, 145 const GrGLCaps& caps,
146 GrProcessorKeyBuilder* b) const SK_OVERRIDE; 146 GrProcessorKeyBuilder* b) const SK_OVERRIDE;
147 147
148 virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, 148 virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt,
149 const GrGLCaps&) const SK_O VERRIDE; 149 const GrGLCaps&) const SK_O VERRIDE;
150 150
151 void initBatchTracker(GrBatchTracker* bt, const InitBT& init) const SK_OVERR IDE; 151 void initBatchTracker(GrBatchTracker* bt, const InitBT& init) const SK_OVERR IDE;
152 152
153 bool onCanMakeEqual(const GrBatchTracker&, 153 bool onCanMakeEqual(const GrBatchTracker&,
154 const GrGeometryProcessor&, 154 const GrGeometryProcessor&,
155 const GrBatchTracker&) const SK_OVERRIDE; 155 const GrBatchTracker&) const SK_OVERRIDE;
156 156
157 private: 157 private:
158 GrDistanceFieldNoGammaTextureEffect(GrColor, const SkMatrix& viewMatrix, GrT exture* texture, 158 GrDistanceFieldNoGammaTextureEffect(GrColor, const SkMatrix& viewMatrix, GrT exture* texture,
159 const GrTextureParams& params, uint32_t flags, 159 const GrTextureParams& params, uint32_t flags,
160 bool opaqueVertexColors); 160 bool opaqueVertexColors);
161 161
162 bool onIsEqual(const GrGeometryProcessor& other) const SK_OVERRIDE; 162 bool onIsEqual(const GrGeometryProcessor& other) const SK_OVERRIDE;
163 163
164 void onGetInvariantOutputCoverage(GrInitInvariantOutput*) const SK_OVERRIDE; 164 void onGetInvariantOutputCoverage(GrInitInvariantOutput*) const SK_OVERRIDE;
165 165
166 GrTextureAccess fTextureAccess; 166 GrTextureAccess fTextureAccess;
167 uint32_t fFlags; 167 uint32_t fFlags;
168 const GrAttribute* fInPosition; 168 const Attribute* fInPosition;
169 const GrAttribute* fInColor; 169 const Attribute* fInColor;
170 const GrAttribute* fInTextureCoords; 170 const Attribute* fInTextureCoords;
171 171
172 GR_DECLARE_GEOMETRY_PROCESSOR_TEST; 172 GR_DECLARE_GEOMETRY_PROCESSOR_TEST;
173 173
174 typedef GrGeometryProcessor INHERITED; 174 typedef GrGeometryProcessor INHERITED;
175 }; 175 };
176 176
177 /** 177 /**
178 * The output color of this effect is a modulation of the input color and sample s from a 178 * The output color of this effect is a modulation of the input color and sample s from a
179 * distance field texture (using a smoothed step function near 0.5), adjusted fo r LCD displays. 179 * distance field texture (using a smoothed step function near 0.5), adjusted fo r LCD displays.
180 * It allows explicit specification of the filtering and wrap modes (GrTexturePa rams). The input 180 * It allows explicit specification of the filtering and wrap modes (GrTexturePa rams). The input
181 * coords are a custom attribute. Gamma correction is handled via a texture LUT. 181 * coords are a custom attribute. Gamma correction is handled via a texture LUT.
182 */ 182 */
183 class GrDistanceFieldLCDTextureEffect : public GrGeometryProcessor { 183 class GrDistanceFieldLCDTextureEffect : public GrGeometryProcessor {
184 public: 184 public:
185 static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix , GrTexture* tex, 185 static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix , GrTexture* tex,
186 const GrTextureParams& params, GrTexture* gamma, 186 const GrTextureParams& params, GrTexture* gamma,
187 const GrTextureParams& gammaParams, 187 const GrTextureParams& gammaParams,
188 SkColor textColor, uint32_t flags) { 188 SkColor textColor, uint32_t flags) {
189 return SkNEW_ARGS(GrDistanceFieldLCDTextureEffect, 189 return SkNEW_ARGS(GrDistanceFieldLCDTextureEffect,
190 (color, viewMatrix, tex, params, gamma, gammaParams, t extColor, flags)); 190 (color, viewMatrix, tex, params, gamma, gammaParams, t extColor, flags));
191 } 191 }
192 192
193 virtual ~GrDistanceFieldLCDTextureEffect() {} 193 virtual ~GrDistanceFieldLCDTextureEffect() {}
194 194
195 const char* name() const SK_OVERRIDE { return "DistanceFieldLCDTexture"; } 195 const char* name() const SK_OVERRIDE { return "DistanceFieldLCDTexture"; }
196 196
197 const GrAttribute* inPosition() const { return fInPosition; } 197 const Attribute* inPosition() const { return fInPosition; }
198 const GrAttribute* inTextureCoords() const { return fInTextureCoords; } 198 const Attribute* inTextureCoords() const { return fInTextureCoords; }
199 GrColor getTextColor() const { return fTextColor; } 199 GrColor getTextColor() const { return fTextColor; }
200 uint32_t getFlags() const { return fFlags; } 200 uint32_t getFlags() const { return fFlags; }
201 201
202 virtual void getGLProcessorKey(const GrBatchTracker& bt, 202 virtual void getGLProcessorKey(const GrBatchTracker& bt,
203 const GrGLCaps& caps, 203 const GrGLCaps& caps,
204 GrProcessorKeyBuilder* b) const SK_OVERRIDE; 204 GrProcessorKeyBuilder* b) const SK_OVERRIDE;
205 205
206 virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, 206 virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt,
207 const GrGLCaps&) const SK_O VERRIDE; 207 const GrGLCaps&) const SK_O VERRIDE;
208 208
(...skipping 10 matching lines...) Expand all
219 SkColor textColor, uint32_t flags); 219 SkColor textColor, uint32_t flags);
220 220
221 bool onIsEqual(const GrGeometryProcessor& other) const SK_OVERRIDE; 221 bool onIsEqual(const GrGeometryProcessor& other) const SK_OVERRIDE;
222 222
223 void onGetInvariantOutputCoverage(GrInitInvariantOutput*) const SK_OVERRIDE; 223 void onGetInvariantOutputCoverage(GrInitInvariantOutput*) const SK_OVERRIDE;
224 224
225 GrTextureAccess fTextureAccess; 225 GrTextureAccess fTextureAccess;
226 GrTextureAccess fGammaTextureAccess; 226 GrTextureAccess fGammaTextureAccess;
227 GrColor fTextColor; 227 GrColor fTextColor;
228 uint32_t fFlags; 228 uint32_t fFlags;
229 const GrAttribute* fInPosition; 229 const Attribute* fInPosition;
230 const GrAttribute* fInTextureCoords; 230 const Attribute* fInTextureCoords;
231 231
232 GR_DECLARE_GEOMETRY_PROCESSOR_TEST; 232 GR_DECLARE_GEOMETRY_PROCESSOR_TEST;
233 233
234 typedef GrGeometryProcessor INHERITED; 234 typedef GrGeometryProcessor INHERITED;
235 }; 235 };
236 236
237 #endif 237 #endif
OLDNEW
« no previous file with comments | « src/gpu/effects/GrDashingEffect.cpp ('k') | src/gpu/effects/GrDistanceFieldTextureEffect.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698