Lines Matching refs:program

37 	GLSLProgram *program = new GLSLProgram();
38 program->program_ = 0;
39 program->vsh_ = 0;
40 program->fsh_ = 0;
41 program->vshader_source = 0;
42 program->fshader_source = 0;
43 strcpy(program->name, vshader + strlen(vshader) - 15);
44 strcpy(program->vshader_filename, vshader);
45 strcpy(program->fshader_filename, fshader);
46 if (glsl_recompile(program, error_message)) {
47 active_programs.insert(program);
50 delete program;
53 return program;
57 GLSLProgram *program = new GLSLProgram();
58 program->program_ = 0;
59 program->vsh_ = 0;
60 program->fsh_ = 0;
61 program->vshader_source = vshader_src;
62 program->fshader_source = fshader_src;
63 strcpy(program->name, "[srcshader]");
64 strcpy(program->vshader_filename, "");
65 strcpy(program->fshader_filename, "");
66 if (glsl_recompile(program, error_message)) {
67 active_programs.insert(program);
70 delete program;
73 return program;
99 bool glsl_recompile(GLSLProgram *program, std::string *error_message) {
103 if (strlen(program->vshader_filename) > 0 && 0 == stat(program->vshader_filename, &vs)) {
104 program->vshader_mtime = vs.st_mtime;
105 if (!program->vshader_source) {
107 vsh_src.reset((char *)File::ReadLocalFile(Path(program->vshader_filename), &sz));
110 program->vshader_mtime = 0;
113 if (strlen(program->fshader_filename) > 0 && 0 == stat(program->fshader_filename, &fs)) {
114 program->fshader_mtime = fs.st_mtime;
115 if (!program->fshader_source) {
117 fsh_src.reset((char *)File::ReadLocalFile(Path(program->fshader_filename), &sz));
120 program->fshader_mtime = 0;
123 if (!program->vshader_source && !vsh_src) {
125 vsh_src.reset((char *)VFSReadFile(program->vshader_filename, &sz));
127 if (!program->vshader_source && !vsh_src) {
128 ERROR_LOG(G3D, "File missing: %s", program->vshader_filename);
130 *error_message = std::string("File missing: ") + program->vshader_filename; in GetUniformLoc()
134 if (!program->fshader_source && !fsh_src) {
136 fsh_src.reset((char *)VFSReadFile(program->fshader_filename, &sz));
138 if (!program->fshader_source && !fsh_src) {
139 ERROR_LOG(G3D, "File missing: %s", program->fshader_filename);
141 *error_message = std::string("File missing: ") + program->fshader_filename;
147 …const GLchar *vsh_str = program->vshader_source ? program->vshader_source : (const GLchar *)(vsh_s…
148 if (!CompileShader(vsh_str, vsh, program->vshader_filename, error_message)) {
152 …const GLchar *fsh_str = program->fshader_source ? program->fshader_source : (const GLchar *)(fsh_s…
154 if (!CompileShader(fsh_str, fsh, program->fshader_filename, error_message)) {
192 if (program->program_) {
193 glDeleteProgram(program->program_);
196 program->program_ = prog;
197 program->vsh_ = vsh;
198 program->fsh_ = fsh;
200 program->sampler0 = glGetUniformLocation(program->program_, "sampler0");
201 program->sampler1 = glGetUniformLocation(program->program_, "sampler1");
203 program->a_position = glGetAttribLocation(program->program_, "a_position");
204 program->a_color = glGetAttribLocation(program->program_, "a_color");
205 program->a_normal = glGetAttribLocation(program->program_, "a_normal");
206 program->a_texcoord0 = glGetAttribLocation(program->program_, "a_texcoord0");
207 program->a_texcoord1 = glGetAttribLocation(program->program_, "a_texcoord1");
209 program->u_worldviewproj = glGetUniformLocation(program->program_, "u_worldviewproj");
210 program->u_world = glGetUniformLocation(program->program_, "u_world");
211 program->u_viewproj = glGetUniformLocation(program->program_, "u_viewproj");
212 program->u_fog = glGetUniformLocation(program->program_, "u_fog");
213 program->u_sundir = glGetUniformLocation(program->program_, "u_sundir"); in Reset()
214 program->u_camerapos = glGetUniformLocation(program->program_, "u_camerapos");
222 int glsl_attrib_loc(const GLSLProgram *program, const char *name) {
223 return glGetAttribLocation(program->program_, name);
226 int glsl_uniform_loc(const GLSLProgram *program, const char *name) { in BeginNoReset()
227 return glGetUniformLocation(program->program_, name); in BeginNoReset()
230 void glsl_destroy(GLSLProgram *program) { in End()
231 if (program) { in End()
232 glDeleteShader(program->vsh_); in End()
233 glDeleteShader(program->fsh_); in End()
234 glDeleteProgram(program->program_); in End()
235 active_programs.erase(program); in End()
239 delete program; in End()
244 void glsl_bind(const GLSLProgram *program) { in Allocate()
245 if (program) in Allocate()
246 glUseProgram(program->program_); in Allocate()
249 curProgram = program; in Allocate()