X-Git-Url: https://git.lukelau.me/?p=opengl.git;a=blobdiff_plain;f=program.cpp;h=2275dcb416bed7740725f0a170a7a16610f795a1;hp=b1f2edeb52d2c210985fb24dadfe843d78d8c5de;hb=dbd855720a9af7d6e599ddc50bbbb0dee85458a5;hpb=c44e69ec78367fb2957324026894aef970f2481a diff --git a/program.cpp b/program.cpp index b1f2ede..2275dcb 100644 --- a/program.cpp +++ b/program.cpp @@ -10,7 +10,7 @@ void attachShader(GLuint progId, string filePath, GLenum type) { if (!shader) { cerr << "error creating shader" << endl; - exit(1); + abort(); } ifstream file(filePath); @@ -26,7 +26,7 @@ void attachShader(GLuint progId, string filePath, GLenum type) { if (!success) { GLchar log[1024]; glGetShaderInfoLog(shader, 1024, NULL, log); - fprintf(stderr, "error: %s\n", log); + fprintf(stderr, "Error compiling %s\n%s\n", filePath.c_str(), log); exit(1); } glAttachShader(progId, shader); @@ -44,7 +44,21 @@ Program::Program(const string vertexShader, const string fragmentShader) { if (!success) { GLchar log[1024]; glGetProgramInfoLog(progId, sizeof(log), NULL, log); - fprintf(stderr, "error linking: %s\n", log); + fprintf(stderr, "error linking %s and %s\n%s\n", vertexShader.c_str(), fragmentShader.c_str(), log); exit(1); } } + +void Program::validate() const { + glValidateProgram(progId); + + GLint success; + glGetProgramiv(progId, GL_VALIDATE_STATUS, &success); + if (!success) { + GLchar log[1024]; + glGetProgramInfoLog(progId, sizeof(log), NULL, log); + fprintf(stderr, "Error validating: %s\n", log); + exit(1); + } +} +