append("#extension ext_texture_array: require\n");
formatted += '\n';
- visit(s.content);
+ s.content.visit(*this);
return formatted;
}
append(var.name);
}
+void Formatter::visit(InterfaceBlockReference &iface)
+{
+ append(iface.name);
+}
+
void Formatter::visit(MemberAccess &memacc)
{
memacc.left->visit(*this);
SetForScope<unsigned> set(indent, indent+(indent>0 || use_braces));
string spaces(indent*2, ' ');
+ bool first = true;
for(NodeList<Statement>::iterator i=block.body.begin(); i!=block.body.end(); ++i)
{
- if(i!=block.body.begin())
+ if((*i)->source==BUILTIN_SOURCE)
+ continue;
+ if(!first)
append('\n');
+ first = false;
set_source((*i)->source, (*i)->line);
append(spaces);
(*i)->visit(*this);
{
if(i!=layout.qualifiers.begin())
append(", ");
- append(i->identifier);
- if(!i->value.empty())
- append(format("=%s", i->value));
+ append(i->name);
+ if(i->has_value)
+ append(format("=%d", i->value));
}
append(')');
}
SetForScope<string> set(block_interface, iface.interface);
append(format("%s %s\n", iface.interface, iface.name));
iface.members.visit(*this);
+ if(!iface.instance_name.empty())
+ {
+ append(' ');
+ append(iface.instance_name);
+ if(iface.array)
+ append("[]");
+ }
append(';');
}
}
}
+void Formatter::visit(Passthrough &pass)
+{
+ append("passthrough");
+ if(pass.subscript)
+ {
+ append('[');
+ pass.subscript->visit(*this);
+ append(']');
+ }
+ append(';');
+}
+
void Formatter::visit(Return &ret)
{
append("return");