diff --git a/src/io/render.c b/src/io/render.c index d1d2240..5defc5a 100644 --- a/src/io/render.c +++ b/src/io/render.c @@ -10,6 +10,7 @@ #include "../util/vec/float2.h" #include "shader.h" +#include "../error.h" #define VERTC 6 GLuint pipe; @@ -36,6 +37,15 @@ int render_init(void) { glBindBuffer(GL_ARRAY_BUFFER, vbo); glBufferData(GL_ARRAY_BUFFER, sizeof(verts), verts, GL_STATIC_DRAW); + int len; + glGetProgramiv(pipe, GL_INFO_LOG_LENGTH, &len); + if (len > 0) { + char log[len]; + glGetProgramInfoLog(pipe, len, &len, log); + log[len - 1] = '\0'; // terminate the string one character sooner since the log includes a newline + fatal("error whilst linking the pipe: '%s'", log); + } + // init the VAO glGenVertexArrays(1, &vao); glBindVertexArray(vao); diff --git a/src/io/shader.c b/src/io/shader.c index b258e4f..439d55f 100644 --- a/src/io/shader.c +++ b/src/io/shader.c @@ -5,6 +5,8 @@ #include #include +#include "../error.h" + #define NAM_S(name) _binary_res_##name##_start // name of a start variable #define NAM_E(name) _binary_res_##name##_end // name of an end variable @@ -22,6 +24,16 @@ static GLuint shader_compile(GLenum type, char const* src, size_t len) { GLuint shader = glCreateShader(type); glShaderSource(shader, 1, &src, &ilen); glCompileShader(shader); + + // repurposing ilen for the max length of the shader log + glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &ilen); + if (ilen > 0) { + char log[ilen]; + glGetShaderInfoLog(shader, ilen, &ilen, log); + log[ilen - 1] = '\0'; // terminate the string one character sooner since the log includes a newline + error("error whilst compiling shader type '0x%x': '%s'", type, log); + } + return shader; }