X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fmaterials%2Ftechnique.cpp;h=ef1764112c4f3de6b98a2310ce67b84267e34e9d;hp=26a70a018dde6042ce7ddc5f8b21a2e942257ad5;hb=e9a898f315b5d1396f196d785913a283c30940f2;hpb=bdef3de6559629f25121de2e014383d7f773266b diff --git a/source/materials/technique.cpp b/source/materials/technique.cpp index 26a70a01..ef176411 100644 --- a/source/materials/technique.cpp +++ b/source/materials/technique.cpp @@ -31,19 +31,19 @@ const RenderPass &Technique::get_pass(Tag tag) const const RenderPass *Technique::find_pass(Tag tag) const { - PassMap::const_iterator i = passes.find(tag); + auto i = passes.find(tag); return (i!=passes.end() ? &i->second : 0); } bool Technique::replace_texture(const string &slot, const Texture &tex) { bool replaced = false; - for(PassMap::iterator i=passes.begin(); i!=passes.end(); ++i) + for(auto &kvp: passes) { - Tag tag = i->second.get_texture_tag(slot); + Tag tag = kvp.second.get_texture_tag(slot); if(tag.id) { - i->second.set_texture(tag, &tex); + kvp.second.set_texture(tag, &tex); replaced = true; } } @@ -54,12 +54,12 @@ bool Technique::replace_texture(const string &slot, const Texture &tex) bool Technique::replace_material(const string &slot, const Material &mat) { bool replaced = false; - for(PassMap::iterator i=passes.begin(); i!=passes.end(); ++i) + for(auto &kvp: passes) { - const string &pass_slot = i->second.get_material_slot_name(); + const string &pass_slot = kvp.second.get_material_slot_name(); if(!pass_slot.empty() && pass_slot==slot) { - i->second.set_material(&mat); + kvp.second.set_material(&mat); replaced = true; } } @@ -71,24 +71,24 @@ bool Technique::replace_uniforms(const ProgramData &shdata) { bool replaced = false; const vector &uniform_tags = shdata.get_uniform_tags(); - for(PassMap::iterator i=passes.begin(); i!=passes.end(); ++i) + for(auto &kvp: passes) { RefPtr new_shdata; - for(vector::const_iterator j=uniform_tags.begin(); j!=uniform_tags.end(); ++j) + for(Tag t: uniform_tags) { - Tag tag = i->second.get_slotted_uniform_tag(*j); + Tag tag = kvp.second.get_slotted_uniform_tag(t); if(!tag.id) continue; if(!new_shdata) - new_shdata = new ProgramData(*i->second.get_shader_data()); + new_shdata = new ProgramData(*kvp.second.get_shader_data()); - new_shdata->uniform(tag, shdata.get_uniform(*j)); + new_shdata->uniform(tag, shdata.get_uniform(t)); replaced = true; } if(new_shdata) - i->second.set_shader_program(i->second.get_shader_program(), new_shdata.get()); + kvp.second.set_shader_program(kvp.second.get_shader_program(), new_shdata.get()); } return replaced; @@ -96,8 +96,8 @@ bool Technique::replace_uniforms(const ProgramData &shdata) bool Technique::has_shaders() const { - for(PassMap::const_iterator i=passes.begin(); i!=passes.end(); ++i) - if(i->second.get_shader_program()) + for(const auto &kvp: passes) + if(kvp.second.get_shader_program()) return true; return false; } @@ -105,8 +105,8 @@ bool Technique::has_shaders() const void Technique::set_debug_name(const std::string &name) { #ifdef DEBUG - for(map::iterator i=passes.begin(); i!=passes.end(); ++i) - i->second.set_debug_name(format("%s [pass:%s]", name, i->first.str())); + for(auto &kvp: passes) + kvp.second.set_debug_name(format("%s [pass:%s]", name, kvp.first.str())); #else (void)name; #endif @@ -182,9 +182,9 @@ void Technique::InheritLoader::material(const string &slot, const string &name) RenderPass &pass = get_item(obj.passes, slot); if(const Material *base_mat = pass.get_material()) { - for(PassMap::iterator i=obj.passes.begin(); i!=obj.passes.end(); ++i) - if(i->second.get_material()==base_mat) - i->second.set_material(&mat); + for(auto &kvp: obj.passes) + if(kvp.second.get_material()==base_mat) + kvp.second.set_material(&mat); } else pass.set_material(&mat);