123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- /** OpenGL helper functions */
- #include "glh.h"
- #include "mem.h"
- #include "monolog.h"
- /*
- GLuint glh_shader_make(GLenum type, char * data) {
- const GLchar * gldata = (const GLchar *) data;
- GLint status;
- GLuint shader = glCreateShader(type);
-
- glShaderSource(shader, 1, &gldata, NULL);
- glCompileShader(shader);
- glGetShaderiv(shader, GL_COMPILE_STATUS, &status);
-
- if (status == GL_FALSE) {
- GLint logsize;
- const char *typename = "unknown";
- GLchar *log;
-
- glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &logsize);
- log = mem_alloc(logsize);
- glGetShaderInfoLog(shader, logsize, NULL, log);
-
- switch(type) {
- case GL_VERTEX_SHADER: typename = "vertex"; break;
- case GL_GEOMETRY_SHADER: typename = "geometry"; break;
- case GL_FRAGMENT_SHADER: typename = "fragment"; break;
- }
- LOG_ERROR("Compile failure in %s shader:\n%s\n", typename, log);
- mem_free(log);
- }
- return shader;
- }
- GLuint gl_program_make(GLuint * shaders, int amount) {
- GLint status;
- int index;
- GLuint program = glCreateProgram();
-
- for(index = 0; index < amount; index++) {
- glAttachShader(program, shaders[index]);
- }
- glLinkProgram(program);
-
- glGetProgramiv(program, GL_LINK_STATUS, &status);
- if (status == GL_FALSE) {
- GLint logsize;
- GLchar *log;
- glGetProgramiv(program, GL_INFO_LOG_LENGTH, &logsize);
- log = mem_alloc(logsize);
-
- glGetProgramInfoLog(program, logsize, NULL, log);
- LOG_ERROR("Linker failure: %s\n", log);
- mem_free(log);
- }
-
- for(index = 0; index < amount; index++) {
- glDetachShader(program, shaders[index]);
- }
-
- return program;
- }
- */
|