X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fprogram.cpp;h=1343c00f48cf0556984d65ff7db245a7628d3b7e;hb=541bf02f18ad27e8c8101e4255586ddbfef40916;hp=77fe7e7510d9e09597712803ade770267486b26e;hpb=953f041e904e97c4435e0229b8d88eabe31e5c3d;p=libs%2Fgl.git diff --git a/source/program.cpp b/source/program.cpp index 77fe7e75..1343c00f 100644 --- a/source/program.cpp +++ b/source/program.cpp @@ -215,11 +215,28 @@ void Program::link() if(!(*i)->is_compiled()) (*i)->compile(); + uniforms.clear(); + glLinkProgramARB(id); int value; glGetObjectParameterivARB(id, GL_OBJECT_LINK_STATUS_ARB, &value); if(!(linked = value)) throw CompileError(get_info_log()); + + glGetObjectParameterivARB(id, GL_OBJECT_ACTIVE_UNIFORMS_ARB, &value); + for(int i=0; i::const_iterator i = uniforms.find(n); + if(i==uniforms.end()) + return -1; + + return i->second.location; } void Program::unbind()