glGetActiveUniform(id, i, 128, &len, &size, &type, name);
if(len && strncmp(name, "gl_", 3))
{
+ /* Some implementations report the first element of a uniform array,
+ others report just the name of an array. */
+ if(len>3 && !strcmp(name+len-3, "[0]"))
+ name[len-3] = 0;
+
UniformInfo &info = uniforms[name];
info.block = 0;
info.name = name;
gives us the first element of the array, so try to look that up and
add an offset. */
unsigned offset = lexical_cast<unsigned>(n.substr(open_bracket+1, n.size()-2-open_bracket));
- i = uniforms.find(n.substr(0, open_bracket)+"[0]");
+ i = uniforms.find(n.substr(0, open_bracket));
if(i!=uniforms.end() && !i->second.block && offset<i->second.size)
return i->second.location+offset;
}