|
From: Lasse Kärkkäi. <tr...@us...> - 2011-02-07 01:45:19
|
Module: performous Branch: opengl2 Commit: a136b2ee85144bed84ee983860dce0ba3b398022 Author: Lasse Kärkkäinen <tronic+ndrm at trn.iki.fi> Date: Mon Feb 7 02:43:12 2011 +0100 Better diagnostics for shader compile errors. --- game/glshader.cc | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/game/glshader.cc b/game/glshader.cc index 9c30e5b..fe6bd3b 100644 --- a/game/glshader.cc +++ b/game/glshader.cc @@ -62,7 +62,11 @@ Shader& Shader::compileFile(std::string const& filename, std::string const& defi if (pos == std::string::npos) throw std::runtime_error("Shader " + filename + " missing //DEFINES (needed for injected code)"); srccode = srccode.substr(0, pos) + defines + srccode.substr(pos + 9); } - return compileCode(srccode, type); + try { + compileCode(srccode, type); + } catch (std::runtime_error& e) { + throw std::runtime_error(filename + ": " + e.what()); + } } @@ -75,10 +79,11 @@ Shader& Shader::compileCode(std::string const& srccode, GLenum type) { ec.check("glShaderSource"); glCompileShader(new_shader); + ec.check("glCompileShader"); glGetShaderiv(new_shader, GL_COMPILE_STATUS, &gl_response); if (gl_response != GL_TRUE) { dumpInfoLog(new_shader); - throw std::runtime_error("Something went wrong compiling the shader."); + throw std::runtime_error("Shader compile error"); } shader_ids.push_back(new_shader); |