diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2016-05-14 15:50:03 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2016-05-17 22:39:16 +0300 |
commit | 0e8cd14dfee9788f24854aa8f4148033ef042f51 (patch) | |
tree | 4fd7fdb358f9ef4ccdcb934025b74ee6f25598ad /intern/cycles/blender/blender_shader.cpp | |
parent | 08670d3b8117cda608c178688f261e1204794a0d (diff) |
Code refactor: use shader pointers rather than shader indexes.
Diffstat (limited to 'intern/cycles/blender/blender_shader.cpp')
-rw-r--r-- | intern/cycles/blender/blender_shader.cpp | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index 04d8b14cba0..a56c2e75e4e 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -37,18 +37,13 @@ typedef map<std::string, ConvertNode*> ProxyMap; /* Find */ void BlenderSync::find_shader(BL::ID& id, - vector<uint>& used_shaders, - int default_shader) + vector<Shader*>& used_shaders, + Shader *default_shader) { - Shader *shader = (id)? shader_map.find(id): scene->shaders[default_shader]; + Shader *shader = (id)? shader_map.find(id): default_shader; - for(size_t i = 0; i < scene->shaders.size(); i++) { - if(scene->shaders[i] == shader) { - used_shaders.push_back(i); - scene->shaders[i]->tag_used(scene); - break; - } - } + used_shaders.push_back(shader); + shader->tag_used(scene); } /* RNA translation utilities */ @@ -1207,7 +1202,7 @@ static void add_nodes(Scene *scene, void BlenderSync::sync_materials(bool update_all) { - shader_map.set_default(scene->shaders[scene->default_surface]); + shader_map.set_default(scene->default_surface); /* material loop */ BL::BlendData::materials_iterator b_mat; @@ -1262,7 +1257,7 @@ void BlenderSync::sync_world(bool update_all) BL::World b_world = b_scene.world(); if(world_recalc || update_all || b_world.ptr.data != world_map) { - Shader *shader = scene->shaders[scene->default_background]; + Shader *shader = scene->default_background; ShaderGraph *graph = new ShaderGraph(); /* create nodes */ @@ -1342,7 +1337,7 @@ void BlenderSync::sync_world(bool update_all) void BlenderSync::sync_lamps(bool update_all) { - shader_map.set_default(scene->shaders[scene->default_light]); + shader_map.set_default(scene->default_light); /* lamp loop */ BL::BlendData::lamps_iterator b_lamp; |