+int Program::get_uniform_location(Tag tag) const
+{
+ vector<UniformInfo>::const_iterator i = lower_bound(uniforms, tag, &search<UniformInfo, Tag, &UniformInfo::tag>);
+ return i!=uniforms.end() && i->tag==tag && i->block->bind_point<0 ? i->location : -1;
+}
+