]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/shader.cpp
Redesign the way shader programs are loaded
[libs/gl.git] / source / core / shader.cpp
index 02dcc0dcff789fe142f9b47d4bde5ad2e48fe7fa..9950e4970e913a7aba25aed333ecb044c7c8bdc3 100644 (file)
@@ -42,7 +42,8 @@ void Shader::init(GLenum t)
 
 Shader::~Shader()
 {
-       glDeleteShader(id);
+       if(id)
+               glDeleteShader(id);
 }
 
 void Shader::source(unsigned count, const char **str, const int *len)
@@ -74,6 +75,13 @@ void Shader::compile()
 #endif
 }
 
+unsigned Shader::steal_id()
+{
+       unsigned result = id;
+       id = 0;
+       return result;
+}
+
 string Shader::get_info_log() const
 {
        GLsizei len = get_shader_i(id, GL_INFO_LOG_LENGTH);