]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/resolve.cpp
Change the naming scheme for the interface block map
[libs/gl.git] / source / glsl / resolve.cpp
index 02f224d66b4453d2469a2638e0ab0453d2cd6c4a..8bfe635ee73b8d2f3c0dd1bd9dd7414313117263 100644 (file)
@@ -225,7 +225,7 @@ void VariableResolver::visit(VariableReference &var)
        if(!declaration)
        {
                const map<string, InterfaceBlock *> &blocks = stage->interface_blocks;
-               map<string, InterfaceBlock *>::const_iterator i = blocks.find("_"+var.name);
+               map<string, InterfaceBlock *>::const_iterator i = blocks.find(var.name);
                if(i!=blocks.end())
                {
                        /* The name refers to an interface block with an instance name rather
@@ -259,7 +259,7 @@ void VariableResolver::visit(VariableReference &var)
 
 void VariableResolver::visit(InterfaceBlockReference &iface)
 {
-       map<string, InterfaceBlock *>::iterator i = stage->interface_blocks.find("_"+iface.name);
+       map<string, InterfaceBlock *>::iterator i = stage->interface_blocks.find(iface.name);
        InterfaceBlock *declaration = (i!=stage->interface_blocks.end() ? i->second : 0);
        r_any_resolved |= (declaration!=iface.declaration);
        iface.declaration = declaration;
@@ -430,9 +430,9 @@ void VariableResolver::visit(InterfaceBlock &iface)
 {
        /* Block names can be reused in different interfaces.  Prefix the name with
        the first character of the interface to avoid conflicts. */
-       stage->interface_blocks.insert(make_pair(iface.interface+iface.block_name, &iface));
+       stage->interface_blocks.insert(make_pair(format("%s %s", iface.interface, iface.block_name), &iface));
        if(!iface.instance_name.empty())
-               stage->interface_blocks.insert(make_pair("_"+iface.instance_name, &iface));
+               stage->interface_blocks.insert(make_pair(iface.instance_name, &iface));
 
        TraversingVisitor::visit(iface);
 }