]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/generate.cpp
Inject builtins into the module
[libs/gl.git] / source / glsl / generate.cpp
index fe053ade254c3105d80771a72d575b264583946a..2fa930a9df822ac369842d46045baaa8955fadd5 100644 (file)
@@ -116,7 +116,6 @@ void BlockHierarchyResolver::enter(Block &block)
 
 VariableResolver::VariableResolver():
        stage(0),
-       builtins(0),
        members(0),
        record_target(false),
        assignment_target(0),
@@ -128,16 +127,9 @@ void VariableResolver::apply(Stage &s)
        stage = &s;
        s.types.clear();
        s.interface_blocks.clear();
-       Stage *builtin_stage = get_builtins(s.type);
-       builtins = (builtin_stage ? &builtin_stage->content : 0);
        s.content.visit(*this);
 }
 
-Block *VariableResolver::next_block(Block &block)
-{
-       return block.parent ? block.parent : &block!=builtins ? builtins : 0;
-}
-
 void VariableResolver::enter(Block &block)
 {
        block.variables.clear();
@@ -147,7 +139,7 @@ void VariableResolver::visit(VariableReference &var)
 {
        var.declaration = 0;
        members = 0;
-       for(Block *block=current_block; (!var.declaration && block); block=next_block(*block))
+       for(Block *block=current_block; (!var.declaration && block); block=block->parent)
        {
                map<string, VariableDeclaration *>::iterator i = block->variables.find(var.name);
                if(i!=block->variables.end())
@@ -199,7 +191,7 @@ void VariableResolver::visit(VariableReference &var)
 void VariableResolver::visit(InterfaceBlockReference &iface)
 {
        iface.declaration = 0;
-       for(Block *block=current_block; block; block=next_block(*block))
+       for(Block *block=current_block; block; block=block->parent)
        {
                map<string, InterfaceBlock *>::iterator i = stage->interface_blocks.find(iface.name);
                if(i!=stage->interface_blocks.end())