OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 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 GrGLShaderBuilder_DEFINED | 8 #ifndef GrGLShaderBuilder_DEFINED |
9 #define GrGLShaderBuilder_DEFINED | 9 #define GrGLShaderBuilder_DEFINED |
10 | 10 |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 GrSLType coordType = kVec2f_GrSLType); | 161 GrSLType coordType = kVec2f_GrSLType); |
162 | 162 |
163 /** Emits a helper function outside of main() in the fragment shader. */ | 163 /** Emits a helper function outside of main() in the fragment shader. */ |
164 void fsEmitFunction(GrSLType returnType, | 164 void fsEmitFunction(GrSLType returnType, |
165 const char* name, | 165 const char* name, |
166 int argCnt, | 166 int argCnt, |
167 const GrGLShaderVar* args, | 167 const GrGLShaderVar* args, |
168 const char* body, | 168 const char* body, |
169 SkString* outName); | 169 SkString* outName); |
170 | 170 |
| 171 void addTexGenUnit(GrSLType type, |
| 172 SkString* fsInName = NULL, |
| 173 int* unitIdx = NULL, |
| 174 int* numComponents = NULL); |
| 175 int getNumTexGenUnits() { return fNumTexGenUnits; } |
| 176 |
171 /** Add input/output variable declarations (i.e. 'varying') to the fragment
shader. */ | 177 /** Add input/output variable declarations (i.e. 'varying') to the fragment
shader. */ |
172 GrGLShaderVar& fsInputAppend() { return fFSInputs.push_back(); } | 178 GrGLShaderVar& fsInputAppend() { return fFSInputs.push_back(); } |
173 GrGLShaderVar& fsOutputAppend() { return fFSOutputs.push_back(); } | 179 GrGLShaderVar& fsOutputAppend() { return fFSOutputs.push_back(); } |
174 GrGLShaderVar& fsInputAppend(const GrGLShaderVar& var) { return fFSInputs.pu
sh_back(var); } | 180 GrGLShaderVar& fsInputAppend(const GrGLShaderVar& var) { return fFSInputs.pu
sh_back(var); } |
175 GrGLShaderVar& fsOutputAppend(const GrGLShaderVar& var) { return fFSOutputs.
push_back(var); } | 181 GrGLShaderVar& fsOutputAppend(const GrGLShaderVar& var) { return fFSOutputs.
push_back(var); } |
176 | 182 |
177 /** Generates a EffectKey for the shader code based on the texture access pa
rameters and the | 183 /** Generates a EffectKey for the shader code based on the texture access pa
rameters and the |
178 capabilities of the GL context. This is useful for keying the shader pr
ograms that may | 184 capabilities of the GL context. This is useful for keying the shader pr
ograms that may |
179 have multiple representations, based on the type/format of textures used
. */ | 185 have multiple representations, based on the type/format of textures used
. */ |
180 static GrBackendEffectFactory::EffectKey KeyForTextureAccess(const GrTexture
Access&, | 186 static GrBackendEffectFactory::EffectKey KeyForTextureAccess(const GrTexture
Access&, |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
481 SkString fFSCode; | 487 SkString fFSCode; |
482 | 488 |
483 bool fSetupFragPosition; | 489 bool fSetupFragPosition; |
484 TextureSampler fDstCopySampler; | 490 TextureSampler fDstCopySampler; |
485 | 491 |
486 GrGLUniformManager::UniformHandle fRTHeightUniform; | 492 GrGLUniformManager::UniformHandle fRTHeightUniform; |
487 GrGLUniformManager::UniformHandle fDstCopyTopLeftUniform; | 493 GrGLUniformManager::UniformHandle fDstCopyTopLeftUniform; |
488 GrGLUniformManager::UniformHandle fDstCopyScaleUniform; | 494 GrGLUniformManager::UniformHandle fDstCopyScaleUniform; |
489 | 495 |
490 bool fTopLeftFragPosRead; | 496 bool fTopLeftFragPosRead; |
| 497 int fNumTexGenUnits; |
491 | 498 |
492 SkAutoTDelete<VertexBuilder> fVertexBuilder; | 499 SkAutoTDelete<VertexBuilder> fVertexBuilder; |
493 }; | 500 }; |
494 | 501 |
495 #endif | 502 #endif |
OLD | NEW |