if (!success) {
char errbuf[BUFSIZ];
glGetShaderInfoLog(id, BUFSIZ, NULL, errbuf); GL_DEBUG
- fprintf(stderr, "[error] failed to compile %s shader: %s", name, errbuf);
+ fprintf(stderr, "[error] failed to compile shader %s: %s", full_path, errbuf);
glDeleteShader(id); GL_DEBUG
return 0;
}
return id;
}
-bool shader_program_create(const char *path, GLuint *idptr, const char *def)
+GLuint shader_program_create(const char *path, const char *def)
{
GLuint id = glCreateProgram(); GL_DEBUG
if (!(vert = compile_shader(GL_VERTEX_SHADER, path, "vertex", id, def))) {
glDeleteProgram(id); GL_DEBUG
- return false;
+ abort();
}
if (!(frag = compile_shader(GL_FRAGMENT_SHADER, path, "fragment", id, def))) {
glDeleteShader(vert); GL_DEBUG
glDeleteProgram(id); GL_DEBUG
- return false;
+ abort();
}
glLinkProgram(id); GL_DEBUG
if (!success) {
char errbuf[BUFSIZ];
glGetProgramInfoLog(id, BUFSIZ, NULL, errbuf); GL_DEBUG
- fprintf(stderr, "[error] failed to link shader program: %s\n", errbuf);
+ fprintf(stderr, "[error] failed to link shader program %s: %s\n", path, errbuf);
glDeleteProgram(id); GL_DEBUG
return false;
}
- *idptr = id;
- return true;
+ return id;
}