]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/reflect.cpp
Visit the entire call graph in DependencyCollector
[libs/gl.git] / source / glsl / reflect.cpp
index e63553163c8435f23e2199effa17cc91eb5e52ee..c38e3aecbb3d487c6c7c2f10f510b6495092e872 100644 (file)
@@ -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