X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogramcompiler.cpp;h=0559d41e4023fedcf4d485e18049c48b21f798b4;hp=afb2a3c32ecac3465cfe8620e74f816beeb84473;hb=4e4a3514961d130045619ea74d0bbab71580838c;hpb=48453f59ec93d9b8f70a17d3034e5ca3e4780ecd diff --git a/source/programcompiler.cpp b/source/programcompiler.cpp index afb2a3c3..0559d41e 100644 --- a/source/programcompiler.cpp +++ b/source/programcompiler.cpp @@ -8,6 +8,8 @@ #include "resources.h" #include "shader.h" +#undef interface + using namespace std; namespace { @@ -1223,6 +1225,13 @@ void ProgramCompiler::FunctionInliner::visit(FunctionCall &call) inline_result = 0; } +void ProgramCompiler::FunctionInliner::visit(VariableDeclaration &var) +{ + if(var.init_expression) + visit_and_inline(var.init_expression); + inline_result = 0; +} + void ProgramCompiler::FunctionInliner::visit(Return &ret) { TraversingVisitor::visit(ret); @@ -1678,6 +1687,7 @@ void ProgramCompiler::NodeRemover::visit(Iteration &iter) { if(to_remove.count(iter.init_statement.get())) iter.init_statement = 0; + TraversingVisitor::visit(iter); }