X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fvisitor.cpp;h=808bcfa52dfc3757e70ea16ba4ec1fe451b75fe8;hb=03d9003072e85c934f5624329fb4a34db8763db2;hp=b1767d3f5748b2fcafb139e9de48098e92563a13;hpb=a1ba04add302e7712d127b46d8d11386987a0aea;p=libs%2Fgl.git diff --git a/source/glsl/visitor.cpp b/source/glsl/visitor.cpp index b1767d3f..808bcfa5 100644 --- a/source/glsl/visitor.cpp +++ b/source/glsl/visitor.cpp @@ -21,11 +21,6 @@ void TraversingVisitor::visit(RefPtr &expr) expr->visit(*this); } -void TraversingVisitor::visit(ParenthesizedExpression &parexpr) -{ - visit(parexpr.expression); -} - void TraversingVisitor::visit(MemberAccess &memacc) { visit(memacc.left); @@ -53,6 +48,13 @@ void TraversingVisitor::visit(Assignment &assign) visit(assign.right); } +void TraversingVisitor::visit(TernaryExpression &ternary) +{ + visit(ternary.condition); + visit(ternary.true_expr); + visit(ternary.false_expr); +} + void TraversingVisitor::visit(FunctionCall &call) { for(NodeArray::iterator i=call.arguments.begin(); i!=call.arguments.end(); ++i) @@ -86,6 +88,8 @@ void TraversingVisitor::visit(VariableDeclaration &var) void TraversingVisitor::visit(InterfaceBlock &iface) { + if(iface.layout) + iface.layout->visit(*this); if(iface.members) iface.members->visit(*this); } @@ -189,7 +193,7 @@ void NodeRemover::visit(InterfaceBlock &iface) { if(to_remove->count(&iface)) { - remove_from_map(stage->interface_blocks, iface.interface+iface.name, iface); + remove_from_map(stage->interface_blocks, iface.interface+iface.block_name, iface); if(!iface.instance_name.empty()) remove_from_map(stage->interface_blocks, "_"+iface.instance_name, iface); }