]> git.tdb.fi Git - libs/gl.git/blobdiff - source/program.cpp
Inherit Loaders from the ObjectLoader classes
[libs/gl.git] / source / program.cpp
index 1b8ffe4dfe3b4fff4e20be818014fb91d083f6c4..01644c02400d739b82f737a4e90aee8c886b3189 100644 (file)
@@ -108,7 +108,7 @@ string Program::get_info_log() const
        return string(log, len);
 }
 
-void Program::bind()
+void Program::bind() const
 {
        if(!linked)
                throw InvalidState("Program is not linked");
@@ -137,13 +137,13 @@ void Program::maybe_bind()
                bind();
 }
 
-Program *Program::cur_prog=0;
+const Program *Program::cur_prog=0;
 
 
 Program::Loader::Loader(Program &p):
-       prog(p)
+       DataFile::ObjectLoader<Program>(p)
 {
-       prog.set_del_shaders(true);
+       obj.set_del_shaders(true);
 
        add("vertex_shader",   &Loader::vertex_shader);
        add("fragment_shader", &Loader::fragment_shader);
@@ -152,22 +152,22 @@ Program::Loader::Loader(Program &p):
 
 void Program::Loader::vertex_shader(const string &src)
 {
-       prog.attach_shader(*new Shader(VERTEX_SHADER, src));
+       obj.attach_shader(*new Shader(VERTEX_SHADER, src));
 }
 
 void Program::Loader::fragment_shader(const string &src)
 {
-       prog.attach_shader(*new Shader(FRAGMENT_SHADER, src));
+       obj.attach_shader(*new Shader(FRAGMENT_SHADER, src));
 }
 
 void Program::Loader::attribute(uint i, const string &n)
 {
-       prog.bind_attribute(i, n);
+       obj.bind_attribute(i, n);
 }
 
 void Program::Loader::finish()
 {
-       prog.link();
+       obj.link();
 }
 
 } // namespace GL