X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fglsl%2Ffinalize.cpp;h=e444974ae9fbe26cc4e0168e063cd4b8177f8416;hb=3867df2040d1fb955158ca3bd8fbf5271ad66fb2;hp=192baec550e111313c76a5cde659e37c6604fba8;hpb=eb7ffda6876bd2eeeb64dcb7c82236f36fe5cf43;p=libs%2Fgl.git diff --git a/source/glsl/finalize.cpp b/source/glsl/finalize.cpp index 192baec5..e444974a 100644 --- a/source/glsl/finalize.cpp +++ b/source/glsl/finalize.cpp @@ -30,16 +30,15 @@ void StructOrganizer::visit(VariableDeclaration &var) bool has_matrix_order = false; if(var.layout) { - vector &qualifiers = var.layout->qualifiers; - for(vector::iterator i=qualifiers.begin(); i!=qualifiers.end(); ++i) + for(Layout::Qualifier &q: var.layout->qualifiers) { - if(i->name=="offset" && i->has_value) + if(q.name=="offset" && q.has_value) { - layout_offset = &i->value; - if(i->value>=offset) - offset = i->value; + layout_offset = &q.value; + if(q.value>=offset) + offset = q.value; } - else if(i->name=="column_major" || i->name=="row_major") + else if(q.name=="column_major" || q.name=="row_major") has_matrix_order = true; } } @@ -74,14 +73,14 @@ void StructOrganizer::visit(VariableDeclaration &var) void LocationAllocator::apply(Module &module, const Features &features) { - for(list::iterator i=module.stages.begin(); i!=module.stages.end(); ++i) - apply(*i); + for(Stage &s: module.stages) + apply(s); allocate_locations("uniform"); - for(vector::const_iterator i=unbound_blocks.begin(); i!=unbound_blocks.end(); ++i) - bind_uniform((*i)->layout, (*i)->block_name, features.uniform_binding_range); - for(vector::const_iterator i=unbound_textures.begin(); i!=unbound_textures.end(); ++i) - bind_uniform((*i)->layout, (*i)->name, features.texture_binding_range); + for(InterfaceBlock *b: unbound_blocks) + bind_uniform(b->layout, b->block_name, features.uniform_binding_range); + for(VariableDeclaration *t: unbound_textures) + bind_uniform(t->layout, t->name, features.texture_binding_range); } void LocationAllocator::apply(Stage &stage) @@ -97,9 +96,9 @@ void LocationAllocator::apply(Stage &stage) void LocationAllocator::allocate_locations(const string &iface) { - vector::iterator write = unplaced_variables.begin(); + auto write = unplaced_variables.begin(); unsigned next = 0; - for(vector::const_iterator i=unplaced_variables.begin(); i!=unplaced_variables.end(); ++i) + for(auto i=unplaced_variables.begin(); i!=unplaced_variables.end(); ++i) { if((*i)->interface!=iface) { @@ -111,7 +110,7 @@ void LocationAllocator::allocate_locations(const string &iface) if((*i)->interface=="uniform") { - map::const_iterator j = uniforms.find((*i)->name); + auto j = uniforms.find((*i)->name); if(j!=uniforms.end() && j->second.location>=0) { add_layout_value((*i)->layout, "location", j->second.location); @@ -147,7 +146,7 @@ void LocationAllocator::allocate_locations(const string &iface) void LocationAllocator::bind_uniform(RefPtr &layout, const string &name, unsigned range) { - map::const_iterator i = uniforms.find(name); + auto i = uniforms.find(name); if(i!=uniforms.end() && i->second.bind_point>=0) add_layout_value(layout, "binding", i->second.bind_point); else @@ -252,7 +251,7 @@ void PrecisionConverter::apply(Stage &s) void PrecisionConverter::visit(Block &block) { - for(NodeList::iterator i=block.body.begin(); i!=block.body.end(); ++i) + for(auto i=block.body.begin(); i!=block.body.end(); ++i) { if(&block==&stage->content) insert_point = i; @@ -262,7 +261,7 @@ void PrecisionConverter::visit(Block &block) void PrecisionConverter::visit(Precision &prec) { - if(stage->required_features.gl_api==OPENGL_ES2) + if(stage->required_features.target_api==OPENGL_ES) have_default.insert(prec.type); else nodes_to_remove.insert(&prec); @@ -270,7 +269,7 @@ void PrecisionConverter::visit(Precision &prec) void PrecisionConverter::visit(VariableDeclaration &var) { - if(stage->required_features.gl_api!=OPENGL_ES2) + if(stage->required_features.target_api!=OPENGL_ES) { var.precision.clear(); return; @@ -323,7 +322,7 @@ void LegacyConverter::apply(Stage &s, const Features &feat) NodeRemover().apply(s, nodes_to_remove); if(!stage->required_features.glsl_version) - stage->required_features.glsl_version = Version(1, (stage->required_features.gl_api==OPENGL_ES2 ? 0 : 10)); + stage->required_features.glsl_version = Version(1, (stage->required_features.target_api==OPENGL_ES ? 0 : 10)); } else unsupported(format("Stage %s is not supported", Stage::get_stage_name(s.type))); @@ -341,7 +340,7 @@ void LegacyConverter::unsupported(const string &reason) void LegacyConverter::visit(Block &block) { - for(NodeList::iterator i=block.body.begin(); i!=block.body.end(); ++i) + for(auto i=block.body.begin(); i!=block.body.end(); ++i) { if(&block==&stage->content) uniform_insert_point = i; @@ -373,7 +372,7 @@ bool LegacyConverter::supports_stage(Stage::Type st) const { if(st==Stage::GEOMETRY) { - if(features.gl_api==OPENGL_ES2) + if(features.target_api==OPENGL_ES) return check_version(Version(3, 20)); else return check_version(Version(1, 50)); @@ -384,7 +383,7 @@ bool LegacyConverter::supports_stage(Stage::Type st) const bool LegacyConverter::supports_unified_interface_syntax() const { - if(features.gl_api==OPENGL_ES2) + if(features.target_api==OPENGL_ES) return check_version(Version(3, 0)); else return check_version(Version(1, 30)); @@ -408,7 +407,7 @@ void LegacyConverter::visit(Assignment &assign) bool LegacyConverter::supports_unified_sampling_functions() const { - if(features.gl_api==OPENGL_ES2) + if(features.target_api==OPENGL_ES) return check_version(Version(3, 0)); else return check_version(Version(1, 30)); @@ -453,7 +452,7 @@ void LegacyConverter::visit(FunctionCall &call) bool LegacyConverter::supports_interface_layouts() const { - if(features.gl_api==OPENGL_ES2) + if(features.target_api==OPENGL_ES) return check_version(Version(3, 0)); else if(check_version(Version(3, 30))) return true; @@ -465,7 +464,7 @@ bool LegacyConverter::supports_interface_layouts() const bool LegacyConverter::supports_stage_interface_layouts() const { - if(features.gl_api==OPENGL_ES2) + if(features.target_api==OPENGL_ES) return check_version(Version(3, 10)); else if(check_version(Version(4, 10))) return true; @@ -475,7 +474,7 @@ bool LegacyConverter::supports_stage_interface_layouts() const bool LegacyConverter::supports_centroid_sampling() const { - if(features.gl_api==OPENGL_ES2) + if(features.target_api==OPENGL_ES) return check_version(Version(3, 0)); else if(check_version(Version(1, 20))) return true; @@ -485,7 +484,7 @@ bool LegacyConverter::supports_centroid_sampling() const bool LegacyConverter::supports_sample_sampling() const { - if(features.gl_api==OPENGL_ES2) + if(features.target_api==OPENGL_ES) return check_version(Version(3, 20)); else if(check_version(Version(4, 0))) return true; @@ -495,7 +494,7 @@ bool LegacyConverter::supports_sample_sampling() const bool LegacyConverter::supports_uniform_location() const { - if(features.gl_api==OPENGL_ES2) + if(features.target_api==OPENGL_ES) return check_version(Version(3, 10)); else if(check_version(Version(4, 30))) return true; @@ -505,7 +504,7 @@ bool LegacyConverter::supports_uniform_location() const bool LegacyConverter::supports_binding() const { - if(features.gl_api==OPENGL_ES2) + if(features.target_api==OPENGL_ES) return check_version(Version(3, 10)); else return check_version(Version(4, 20)); @@ -515,7 +514,7 @@ void LegacyConverter::visit(VariableDeclaration &var) { if(var.layout) { - for(vector::const_iterator i=var.layout->qualifiers.begin(); i!=var.layout->qualifiers.end(); ) + for(auto i=var.layout->qualifiers.begin(); i!=var.layout->qualifiers.end(); ) { if(i->name=="location") { @@ -592,7 +591,7 @@ void LegacyConverter::visit(VariableDeclaration &var) bool LegacyConverter::supports_interface_blocks(const string &iface) const { - if(features.gl_api==OPENGL_ES2) + if(features.target_api==OPENGL_ES) { if(iface=="uniform") return check_version(Version(3, 0)); @@ -609,7 +608,7 @@ bool LegacyConverter::supports_interface_blocks(const string &iface) const bool LegacyConverter::supports_interface_block_location() const { - if(features.gl_api==OPENGL_ES2) + if(features.target_api==OPENGL_ES) return check_version(Version(3, 20)); else if(check_version(Version(4, 40))) return true; @@ -621,7 +620,7 @@ void LegacyConverter::visit(InterfaceBlock &iface) { if(iface.layout) { - for(vector::const_iterator i=iface.layout->qualifiers.begin(); i!=iface.layout->qualifiers.end(); ) + for(auto i=iface.layout->qualifiers.begin(); i!=iface.layout->qualifiers.end(); ) { if(i->name=="location" && !supports_interface_block_location()) i = iface.layout->qualifiers.erase(i);