if(var.layout && !supports_interface_layouts())
{
vector<Layout::Qualifier>::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<unsigned>(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);
}