X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fglsl%2Fcompatibility.cpp;h=a65f6de72fe1a3ddfe29be27edd8d563c9dde55a;hp=0769839430f371c646374f8150cfb0f245e17607;hb=ffdb126a55467245da08a9e6f5669f86e1899bb0;hpb=b482f6d59aca2b4f1d9e2cbcc0f596d62c057509 diff --git a/source/glsl/compatibility.cpp b/source/glsl/compatibility.cpp index 07698394..a65f6de7 100644 --- a/source/glsl/compatibility.cpp +++ b/source/glsl/compatibility.cpp @@ -264,20 +264,19 @@ void LegacyConverter::visit(VariableDeclaration &var) if(var.layout && !supports_interface_layouts()) { vector::iterator i; - for(i=var.layout->qualifiers.begin(); (i!=var.layout->qualifiers.end() && i->identifier!="location"); ++i) ; + for(i=var.layout->qualifiers.begin(); (i!=var.layout->qualifiers.end() && i->name!="location"); ++i) ; if(i!=var.layout->qualifiers.end()) { - unsigned location = lexical_cast(i->value); if(stage->type==Stage::VERTEX && var.interface=="in") { - stage->locations[var.name] = location; + stage->locations[var.name] = i->value; var.layout->qualifiers.erase(i); } else if(stage->type==Stage::FRAGMENT && var.interface=="out") { - if(location!=0 && !check_extension(&Features::ext_gpu_shader4)) + if(i->value!=0 && !check_extension(&Features::ext_gpu_shader4)) throw unsupported_shader("EXT_gpu_shader4 is required"); - stage->locations[var.name] = location; + stage->locations[var.name] = i->value; var.layout->qualifiers.erase(i); }