OLD | NEW |
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 GrGLProgramEffects_DEFINED | 8 #ifndef GrGLProgramEffects_DEFINED |
9 #define GrGLProgramEffects_DEFINED | 9 #define GrGLProgramEffects_DEFINED |
10 | 10 |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 | 122 |
123 SkTArray<GrGLEffect*> fGLEffects; | 123 SkTArray<GrGLEffect*> fGLEffects; |
124 SkTArray<SkSTArray<4, Sampler, true> > fSamplers; | 124 SkTArray<SkSTArray<4, Sampler, true> > fSamplers; |
125 }; | 125 }; |
126 | 126 |
127 /** | 127 /** |
128 * This is an abstract base class for constructing different types of GrGLProgra
mEffects objects. | 128 * This is an abstract base class for constructing different types of GrGLProgra
mEffects objects. |
129 */ | 129 */ |
130 class GrGLProgramEffectsBuilder { | 130 class GrGLProgramEffectsBuilder { |
131 public: | 131 public: |
| 132 virtual ~GrGLProgramEffectsBuilder() { } |
| 133 |
132 /** | 134 /** |
133 * Emits the effect's shader code, and stores the necessary uniforms interna
lly. | 135 * Emits the effect's shader code, and stores the necessary uniforms interna
lly. |
134 */ | 136 */ |
135 virtual void emitEffect(const GrEffectStage&, | 137 virtual void emitEffect(const GrEffectStage&, |
136 GrGLProgramEffects::EffectKey, | 138 GrGLProgramEffects::EffectKey, |
137 const char* outColor, | 139 const char* outColor, |
138 const char* inColor, | 140 const char* inColor, |
139 int stageIndex) = 0; | 141 int stageIndex) = 0; |
140 }; | 142 }; |
141 | 143 |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 | 206 |
205 typedef GrGLProgramEffects INHERITED; | 207 typedef GrGLProgramEffects INHERITED; |
206 }; | 208 }; |
207 | 209 |
208 /** | 210 /** |
209 * This class is used to construct a GrGLVertexProgramEffects* object. | 211 * This class is used to construct a GrGLVertexProgramEffects* object. |
210 */ | 212 */ |
211 class GrGLVertexProgramEffectsBuilder : public GrGLProgramEffectsBuilder { | 213 class GrGLVertexProgramEffectsBuilder : public GrGLProgramEffectsBuilder { |
212 public: | 214 public: |
213 GrGLVertexProgramEffectsBuilder(GrGLFullShaderBuilder*, int reserveCount); | 215 GrGLVertexProgramEffectsBuilder(GrGLFullShaderBuilder*, int reserveCount); |
| 216 virtual ~GrGLVertexProgramEffectsBuilder() { } |
214 | 217 |
215 virtual void emitEffect(const GrEffectStage&, | 218 virtual void emitEffect(const GrEffectStage&, |
216 GrGLProgramEffects::EffectKey, | 219 GrGLProgramEffects::EffectKey, |
217 const char* outColor, | 220 const char* outColor, |
218 const char* inColor, | 221 const char* inColor, |
219 int stageIndex) SK_OVERRIDE; | 222 int stageIndex) SK_OVERRIDE; |
220 | 223 |
221 /** | 224 /** |
222 * Finalizes the building process and returns the effect array. After this c
all, the builder | 225 * Finalizes the building process and returns the effect array. After this c
all, the builder |
223 * becomes invalid. | 226 * becomes invalid. |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
291 | 294 |
292 typedef GrGLProgramEffects INHERITED; | 295 typedef GrGLProgramEffects INHERITED; |
293 }; | 296 }; |
294 | 297 |
295 /** | 298 /** |
296 * This class is used to construct a GrGLTexGenProgramEffects* object. | 299 * This class is used to construct a GrGLTexGenProgramEffects* object. |
297 */ | 300 */ |
298 class GrGLTexGenProgramEffectsBuilder : public GrGLProgramEffectsBuilder { | 301 class GrGLTexGenProgramEffectsBuilder : public GrGLProgramEffectsBuilder { |
299 public: | 302 public: |
300 GrGLTexGenProgramEffectsBuilder(GrGLFragmentOnlyShaderBuilder*, int reserveC
ount); | 303 GrGLTexGenProgramEffectsBuilder(GrGLFragmentOnlyShaderBuilder*, int reserveC
ount); |
| 304 virtual ~GrGLTexGenProgramEffectsBuilder() { } |
301 | 305 |
302 virtual void emitEffect(const GrEffectStage&, | 306 virtual void emitEffect(const GrEffectStage&, |
303 GrGLProgramEffects::EffectKey, | 307 GrGLProgramEffects::EffectKey, |
304 const char* outColor, | 308 const char* outColor, |
305 const char* inColor, | 309 const char* inColor, |
306 int stageIndex) SK_OVERRIDE; | 310 int stageIndex) SK_OVERRIDE; |
307 | 311 |
308 /** | 312 /** |
309 * Finalizes the building process and returns the effect array. After this c
all, the builder | 313 * Finalizes the building process and returns the effect array. After this c
all, the builder |
310 * becomes invalid. | 314 * becomes invalid. |
311 */ | 315 */ |
312 GrGLProgramEffects* finish() { return fProgramEffects.detach(); } | 316 GrGLProgramEffects* finish() { return fProgramEffects.detach(); } |
313 | 317 |
314 private: | 318 private: |
315 GrGLFragmentOnlyShaderBuilder* fBuilder; | 319 GrGLFragmentOnlyShaderBuilder* fBuilder; |
316 SkAutoTDelete<GrGLTexGenProgramEffects> fProgramEffects; | 320 SkAutoTDelete<GrGLTexGenProgramEffects> fProgramEffects; |
317 | 321 |
318 typedef GrGLProgramEffectsBuilder INHERITED; | 322 typedef GrGLProgramEffectsBuilder INHERITED; |
319 }; | 323 }; |
320 | 324 |
321 #endif | 325 #endif |
OLD | NEW |