]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/reflect.cpp
Fix a name conflict in certain inlining scenarios
[libs/gl.git] / source / glsl / reflect.cpp
index 811679f3295c320b30d2caaf8bb92d7ac164f992..32c7c7330d0577fde5c156f90d0e3b9925022518 100644 (file)
@@ -296,7 +296,7 @@ void MemoryRequirementsCalculator::visit(StructDeclaration &strct)
                r_alignment = 1;
                r_offset = -1;
                s->visit(*this);
-               if(r_offset)
+               if(r_offset>=0)
                        total = r_offset;
                total += r_alignment-1;
                total -= total%r_alignment;
@@ -311,12 +311,7 @@ void MemoryRequirementsCalculator::visit(StructDeclaration &strct)
 
 void MemoryRequirementsCalculator::visit(VariableDeclaration &var)
 {
-       if(var.layout)
-       {
-               auto i = find_member(var.layout->qualifiers, string("offset"), &Layout::Qualifier::name);
-               if(i!=var.layout->qualifiers.end())
-                       r_offset = i->value;
-       }
+       r_offset = get_layout_value(var.layout.get(), "offset");
 
        if(var.type_declaration)
                var.type_declaration->visit(*this);