X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fglsl%2Freflect.cpp;h=c38e3aecbb3d487c6c7c2f10f510b6495092e872;hp=e63553163c8435f23e2199effa17cc91eb5e52ee;hb=c72c4ebe384a0d5a48c268d09449707bd86090a8;hpb=fe980fbd898645eba1ac06a5061b3a48db4638b0 diff --git a/source/glsl/reflect.cpp b/source/glsl/reflect.cpp index e6355316..c38e3aec 100644 --- a/source/glsl/reflect.cpp +++ b/source/glsl/reflect.cpp @@ -279,7 +279,10 @@ void DependencyCollector::visit(InterfaceBlockReference &iface) void DependencyCollector::visit(FunctionCall &call) { if(call.declaration) + { dependencies.insert(call.declaration); + call.declaration->visit(*this); + } TraversingVisitor::visit(call); } @@ -295,6 +298,15 @@ void DependencyCollector::visit(VariableDeclaration &var) TraversingVisitor::visit(var); } +void DependencyCollector::visit(FunctionDeclaration &func) +{ + if(!visited_functions.count(&func)) + { + visited_functions.insert(&func); + TraversingVisitor::visit(func); + } +} + } // namespace SL } // namespace GL } // namespace Msp