if(!linked)
throw InvalidState("Program is not linked");
+ if(!set_current(this))
+ return;
+
glUseProgramObjectARB(id);
- cur_prog = this;
}
int Program::get_uniform_location(const string &n) const
void Program::unbind()
{
- if(cur_prog)
- {
- glUseProgramObjectARB(0);
- cur_prog = 0;
- }
-}
+ if(!set_current(0))
+ return;
-void Program::maybe_bind()
-{
- if(cur_prog!=this)
- bind();
+ glUseProgramObjectARB(0);
}
-const Program *Program::cur_prog = 0;
-
Program::Loader::Loader(Program &p):
DataFile::ObjectLoader<Program>(p)