ShaderProgram::~ShaderProgram()
{
m_valid = false;
- for(auto shader : m_shaders)
+ for(auto shader = m_shaders.begin(); shader != m_shaders.end(); ++shader)
{
- glDetachShader(m_program, shader.obj);
- glDeleteShader(shader.obj);
+ glDetachShader(m_program, shader->obj);
+ glDeleteShader(shader->obj);
}
if (m_program)
bool ShaderProgram::AttachShader(const char * src_file, GLenum type)
{
GLuint shader_obj = glCreateShader(type);
+ glObjectLabel(GL_SHADER, shader_obj, -1, src_file);
char * src = GetShaderSource(src_file);
if (src == NULL)
{
{
char info_log[2048];
- glGetShaderInfoLog(shader_obj, 2048, nullptr, info_log);
+ glGetShaderInfoLog(shader_obj, 2048, NULL, info_log);
Error("Shader compile error (file \"%s\"): %s (type %d)", src_file, info_log, type);
return false;
}