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

Side by Side Diff: src/gpu/gl/GrGLProgram.h

Issue 23533066: Move the GL shader compilation step into GrGLShaderBuilder (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | src/gpu/gl/GrGLProgram.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 2011 Google Inc. 2 * Copyright 2011 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 8
9 #ifndef GrGLProgram_DEFINED 9 #ifndef GrGLProgram_DEFINED
10 #define GrGLProgram_DEFINED 10 #define GrGLProgram_DEFINED
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 const GrEffectStage* coverageStages[]); 165 const GrEffectStage* coverageStages[]);
166 166
167 bool succeeded() const { return 0 != fProgramID; } 167 bool succeeded() const { return 0 != fProgramID; }
168 168
169 /** 169 /**
170 * This is the heavy initialization routine for building a GLProgram. colorS tages and 170 * This is the heavy initialization routine for building a GLProgram. colorS tages and
171 * coverageStages correspond to the output of GrGLProgramDesc::Build(). 171 * coverageStages correspond to the output of GrGLProgramDesc::Build().
172 */ 172 */
173 bool genProgram(const GrEffectStage* colorStages[], const GrEffectStage* cov erageStages[]); 173 bool genProgram(const GrEffectStage* colorStages[], const GrEffectStage* cov erageStages[]);
174 174
175 GrSLConstantVec genInputColor(GrGLShaderBuilder* builder, SkString* inColor) ;
176
177 GrSLConstantVec genInputCoverage(GrGLShaderBuilder* builder, SkString* inCov erage);
178
179 void genGeometryShader(GrGLShaderBuilder::VertexBuilder* vertexBuilder) cons t;
180
181 // Creates a GL program ID, binds shader attributes to GL vertex attrs, and links the program
182 bool bindOutputsAttribsAndLinkProgram(const GrGLShaderBuilder& builder,
183 bool bindColorOut,
184 bool bindDualSrcOut);
185
186 // Sets the texture units for samplers 175 // Sets the texture units for samplers
187 void initSamplerUniforms(); 176 void initSamplerUniforms();
188 void initEffectSamplerUniforms(EffectAndSamplers* effect, int* texUnitIdx); 177 void initEffectSamplerUniforms(EffectAndSamplers* effect, int* texUnitIdx);
189 178
190 bool compileShaders(const GrGLShaderBuilder& builder);
191
192 const char* adjustInColor(const SkString& inColor) const;
193
194 // Helper for setData(). 179 // Helper for setData().
195 void setEffectData(const GrEffectStage& stage, const EffectAndSamplers& effe ct); 180 void setEffectData(const GrEffectStage& stage, const EffectAndSamplers& effe ct);
196 181
197 // Helper for setData(). Makes GL calls to specify the initial color when th ere is not 182 // Helper for setData(). Makes GL calls to specify the initial color when th ere is not
198 // per-vertex colors. 183 // per-vertex colors.
199 void setColor(const GrDrawState&, GrColor color, SharedGLState*); 184 void setColor(const GrDrawState&, GrColor color, SharedGLState*);
200 185
201 // Helper for setData(). Makes GL calls to specify the initial coverage when there is not 186 // Helper for setData(). Makes GL calls to specify the initial coverage when there is not
202 // per-vertex coverages. 187 // per-vertex coverages.
203 void setCoverage(const GrDrawState&, GrColor coverage, SharedGLState*); 188 void setCoverage(const GrDrawState&, GrColor coverage, SharedGLState*);
204 189
205 // Helper for setData() that sets the view matrix and loads the render targe t height uniform 190 // Helper for setData() that sets the view matrix and loads the render targe t height uniform
206 void setMatrixAndRenderTargetHeight(const GrDrawState&); 191 void setMatrixAndRenderTargetHeight(const GrDrawState&);
207 192
208 // GL IDs 193 // GL program ID
209 GrGLuint fVShaderID;
210 GrGLuint fGShaderID;
211 GrGLuint fFShaderID;
212 GrGLuint fProgramID; 194 GrGLuint fProgramID;
213 195
214 // these reflect the current values of uniforms (GL uniform values travel wi th program) 196 // these reflect the current values of uniforms (GL uniform values travel wi th program)
215 MatrixState fMatrixState; 197 MatrixState fMatrixState;
216 GrColor fColor; 198 GrColor fColor;
217 GrColor fCoverage; 199 GrColor fCoverage;
218 GrColor fColorFilterColor; 200 GrColor fColorFilterColor;
219 int fDstCopyTexUnit; 201 int fDstCopyTexUnit;
220 202
221 SkTArray<EffectAndSamplers> fColorEffects; 203 SkTArray<EffectAndSamplers> fColorEffects;
222 SkTArray<EffectAndSamplers> fCoverageEffects; 204 SkTArray<EffectAndSamplers> fCoverageEffects;
223 205
224 GrGLProgramDesc fDesc; 206 GrGLProgramDesc fDesc;
225 GrGpuGL* fGpu; 207 GrGpuGL* fGpu;
226 208
227 GrGLUniformManager fUniformManager; 209 GrGLUniformManager fUniformManager;
228 UniformHandles fUniformHandles; 210 UniformHandles fUniformHandles;
229 211
230 typedef SkRefCnt INHERITED; 212 typedef SkRefCnt INHERITED;
231 }; 213 };
232 214
233 #endif 215 #endif
OLDNEW
« no previous file with comments | « no previous file | src/gpu/gl/GrGLProgram.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698