]> git.tdb.fi Git - libs/gl.git/blobdiff - source/programcompiler.cpp
Support layout declarations on variables
[libs/gl.git] / source / programcompiler.cpp
index aef17fa2369fdadc46366c7b4868751ba2d1fc1e..ece48cf06e2606219e76e6fb86bd03577a98074a 100644 (file)
@@ -334,7 +334,13 @@ void ProgramCompiler::Formatter::visit(Layout &layout)
                if(!i->value.empty())
                        formatted += format("=%s", i->value);
        }
-       formatted += format(") %s;", layout.interface);
+       formatted += ')';
+}
+
+void ProgramCompiler::Formatter::visit(InterfaceLayout &layout)
+{
+       layout.layout.visit(*this);
+       formatted += format(" %s;", layout.interface);
 }
 
 void ProgramCompiler::Formatter::visit(StructDeclaration &strct)
@@ -346,6 +352,11 @@ void ProgramCompiler::Formatter::visit(StructDeclaration &strct)
 
 void ProgramCompiler::Formatter::visit(VariableDeclaration &var)
 {
+       if(var.layout)
+       {
+               var.layout->visit(*this);
+               formatted += ' ';
+       }
        if(var.constant)
                formatted += "const ";
        if(!var.sampling.empty())