159 fhandle = glCreateShader(GL_FRAGMENT_SHADER);
160 glShaderSource(fhandle, 1, &fprogram, NULL);
161 glCompileShader(fhandle);
162 glGetShaderiv(fhandle, GL_COMPILE_STATUS, &
status);
164 glGetShaderInfoLog(fhandle,
sizeof log, NULL, log);
169 glDeleteShader(fhandle);
175 vhandle = glCreateShader(GL_VERTEX_SHADER);
176 glShaderSource(vhandle, 1, &
vprogram, NULL);
177 glCompileShader(vhandle);
178 glGetShaderiv(vhandle, GL_COMPILE_STATUS, &
status);
180 glGetShaderInfoLog(vhandle,
sizeof log, NULL, log);
185 glDeleteShader(fhandle);
186 glDeleteShader(vhandle);
191 GLuint phandle = glCreateProgram();
195 glAttachShader(phandle, vhandle);
198 glAttachShader(phandle, fhandle);
200 glLinkProgram(phandle);
203 glDeleteShader(vhandle);
204 glDeleteShader(fhandle);
206 glGetProgramiv(phandle, GL_LINK_STATUS, &
status);
207 glGetProgramInfoLog(phandle,
sizeof log, NULL, (GLchar*) log);
212 glDeleteProgram(phandle);
#define debug_msg(...)
#define debug_msg(...) log_msg(LOG_LEVEL_DEBUG, "[pid/%d +%d %s] ", getpid(), LINE,...
bool init_gl_context(struct gl_context *context, int which)
initializes specified OpenGL context
void destroy_gl_context(struct gl_context *context)
void gl_context_make_current(struct gl_context *context)
GLuint glsl_compile_link(const char *vprogram, const char *fprogram)
#define GL_CONTEXT_LEGACY