Revision: 37045 http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37045 Author: blendix Date: 2011-05-31 10:57:43 +0000 (Tue, 31 May 2011) Log Message: ----------- Cycles: fix instanced mesh sync being a bit too slow.
Modified Paths: -------------- branches/cycles/intern/cycles/blender/blender_mesh.cpp branches/cycles/intern/cycles/blender/blender_object.cpp branches/cycles/intern/cycles/blender/blender_sync.h Modified: branches/cycles/intern/cycles/blender/blender_mesh.cpp =================================================================== --- branches/cycles/intern/cycles/blender/blender_mesh.cpp 2011-05-31 10:41:01 UTC (rev 37044) +++ branches/cycles/intern/cycles/blender/blender_mesh.cpp 2011-05-31 10:57:43 UTC (rev 37045) @@ -252,6 +252,12 @@ } } + /* ensure we only sync instanced meshes once */ + if(mesh_synced.find(mesh) != mesh_synced.end()) + return mesh; + + mesh_synced.insert(mesh); + /* create derived mesh */ BL::Mesh b_mesh = object_to_mesh(b_ob, b_scene, true, !preview); /* todo: this will crash on non-mesh types! */ Modified: branches/cycles/intern/cycles/blender/blender_object.cpp =================================================================== --- branches/cycles/intern/cycles/blender/blender_object.cpp 2011-05-31 10:41:01 UTC (rev 37044) +++ branches/cycles/intern/cycles/blender/blender_object.cpp 2011-05-31 10:57:43 UTC (rev 37045) @@ -139,6 +139,7 @@ light_map.pre_sync(); mesh_map.pre_sync(); object_map.pre_sync(); + mesh_synced.clear(); /* object loop */ BL::Scene::objects_iterator b_ob; @@ -177,6 +178,7 @@ scene->mesh_manager->tag_update(scene); if(object_map.post_sync()) scene->object_manager->tag_update(scene); + mesh_synced.clear(); } CCL_NAMESPACE_END Modified: branches/cycles/intern/cycles/blender/blender_sync.h =================================================================== --- branches/cycles/intern/cycles/blender/blender_sync.h 2011-05-31 10:41:01 UTC (rev 37044) +++ branches/cycles/intern/cycles/blender/blender_sync.h 2011-05-31 10:57:43 UTC (rev 37045) @@ -92,6 +92,7 @@ id_map<ObjectKey, Object> object_map; id_map<void*, Mesh> mesh_map; id_map<ObjectKey, Light> light_map; + set<Mesh*> mesh_synced; void *world_map; bool world_recalc; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs