if (!shader) {
cerr << "error creating shader" << endl;
- exit(1);
+ abort();
}
ifstream file(filePath);
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);
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);
+ }
+}
+