]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/output.cpp
Add legacy conversion for binding layout qualifiers
[libs/gl.git] / source / glsl / output.cpp
index f1e9b4be99ca8a2582e7a97944c0c16666f80540..1d82cae6a9ed95f20debbcf500a6a242c929c54a 100644 (file)
@@ -32,16 +32,22 @@ const string &Formatter::apply(Stage &s)
                formatted += '\n';
        }
 
+       if(s.required_features.arb_enhanced_layouts)
+               append("#extension GL_ARB_enhanced_layouts: require\n");
        if(s.required_features.arb_explicit_attrib_location)
-               append("#extension arb_explicit_attrib_location: require\n");
+               append("#extension GL_ARB_explicit_attrib_location: require\n");
+       if(s.required_features.arb_explicit_uniform_location)
+               append("#extension GL_ARB_explicit_uniform_location: require\n");
        if(s.required_features.arb_gpu_shader5)
-               append("#extension arb_gpu_shader5: require\n");
+               append("#extension GL_ARB_gpu_shader5: require\n");
+       if(s.required_features.arb_separate_shader_objects)
+               append("#extension GL_ARB_separate_shader_objects: require\n");
        if(s.required_features.arb_uniform_buffer_object)
-               append("#extension arb_uniform_buffer_object: require\n");
+               append("#extension GL_ARB_uniform_buffer_object: require\n");
        if(s.required_features.ext_gpu_shader4)
-               append("#extension ext_gpu_shader4: require\n");
+               append("#extension GL_EXT_gpu_shader4: require\n");
        if(s.required_features.ext_texture_array)
-               append("#extension ext_texture_array: require\n");
+               append("#extension GL_EXT_texture_array: require\n");
        formatted += '\n';
 
        s.content.visit(*this);
@@ -145,13 +151,6 @@ void Formatter::visit(Literal &literal)
        append(literal.token);
 }
 
-void Formatter::visit(ParenthesizedExpression &parexpr)
-{
-       append('(');
-       parexpr.expression->visit(*this);
-       append(')');
-}
-
 void Formatter::visit(VariableReference &var)
 {
        append(var.name);
@@ -313,7 +312,12 @@ void Formatter::visit(VariableDeclaration &var)
 
 void Formatter::visit(InterfaceBlock &iface)
 {
-       append(format("%s %s\n", iface.interface, iface.name));
+       if(iface.layout)
+       {
+               iface.layout->visit(*this);
+               append(' ');
+       }
+       append(format("%s %s\n", iface.interface, iface.block_name));
        if(iface.struct_declaration)
                iface.struct_declaration->members.visit(*this);
        if(!iface.instance_name.empty())