X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Ffinalize.cpp;fp=source%2Fglsl%2Ffinalize.cpp;h=3bdca5cb7d02dcbf786e69dd60d9f0b3b394d554;hb=ea844415db7fb7705ecbfea9cf27df2a8f00b802;hp=864a128b9230543913a629ff25e4b031af4981aa;hpb=3fe1aab63922eec99d8bf6fd4fd60bec10df173c;p=libs%2Fgl.git diff --git a/source/glsl/finalize.cpp b/source/glsl/finalize.cpp index 864a128b..3bdca5cb 100644 --- a/source/glsl/finalize.cpp +++ b/source/glsl/finalize.cpp @@ -210,10 +210,8 @@ void LocationAllocator::visit(VariableDeclaration &var) if(var.interface=="uniform") { - const TypeDeclaration *type = var.type_declaration; - while(const BasicTypeDeclaration *basic = dynamic_cast(type)) - type = basic->base_type; - if(dynamic_cast(type) && !visit_uniform(var.name, var.layout)) + const TypeDeclaration *base_type = get_ultimate_base_type(var.type_declaration); + if(dynamic_cast(base_type) && !visit_uniform(var.name, var.layout)) unbound_textures.push_back(&var); } } @@ -659,10 +657,7 @@ void QualifierConverter::visit(VariableDeclaration &var) } else if(i->name=="binding" && !supports_binding()) { - const TypeDeclaration *type = var.type_declaration; - while(const BasicTypeDeclaration *basic = dynamic_cast(type)) - type = basic->base_type; - if(dynamic_cast(type)) + if(dynamic_cast(get_ultimate_base_type(var.type_declaration))) stage->texture_bindings[var.name] = i->value; i = var.layout->qualifiers.erase(i);