X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fgenerate.cpp;h=0662f9891f8adec9cbd6bf32da8f47f3b75bed1b;hb=14b46ca054f563d3d23073633feafc4a6fcc4e05;hp=952f1f0bfa4f1bddb2e1bc7585f3829fda9ce78b;hpb=fcec789963b25a49a187e2df248d80e1287ebc44;p=libs%2Fgl.git diff --git a/source/glsl/generate.cpp b/source/glsl/generate.cpp index 952f1f0b..0662f989 100644 --- a/source/glsl/generate.cpp +++ b/source/glsl/generate.cpp @@ -73,10 +73,9 @@ void DeclarationCombiner::visit(VariableDeclaration &var) } -void BlockResolver::visit(Block &block) +void BlockResolver::enter(Block &block) { block.parent = current_block; - TraversingVisitor::visit(block); } void BlockResolver::visit(InterfaceBlock &iface) @@ -104,12 +103,9 @@ Block *VariableResolver::next_block(Block &block) return block.parent ? block.parent : &block!=builtins ? builtins : 0; } -void VariableResolver::visit(Block &block) +void VariableResolver::enter(Block &block) { - if(current_block!=&block) - block.variables.clear(); - - TraversingVisitor::visit(block); + block.variables.clear(); } void VariableResolver::visit(VariableReference &var) @@ -222,20 +218,6 @@ void VariableResolver::visit(InterfaceBlock &iface) TraversingVisitor::visit(iface); } -void VariableResolver::visit(FunctionDeclaration &func) -{ - SetForScope set_block(current_block, &func.body); - func.body.variables.clear(); - TraversingVisitor::visit(func); -} - -void VariableResolver::visit(Iteration &iter) -{ - SetForScope set_block(current_block, &iter.body); - iter.body.variables.clear(); - TraversingVisitor::visit(iter); -} - void FunctionResolver::visit(FunctionCall &call) {