[Bf-blender-cvs] [ee11068] gooseberry: Merge branch 'master' into gooseberry

Antony Riakiotakis noreply at git.blender.org
Thu Apr 9 18:30:48 CEST 2015


Commit: ee110680fd76f67e51927ae0e8ef00010f753767
Author: Antony Riakiotakis
Date:   Thu Apr 9 18:30:40 2015 +0200
Branches: gooseberry
https://developer.blender.org/rBee110680fd76f67e51927ae0e8ef00010f753767

Merge branch 'master' into gooseberry

===================================================================



===================================================================

diff --cc intern/cycles/blender/blender_mesh.cpp
index 8d6f9f0,d88ebb8..7700e6c
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@@ -669,27 -621,16 +669,33 @@@ Mesh *BlenderSync::sync_mesh(BL::Objec
  	}
  	
  	/* test if we need to sync */
- 	bool use_mesh_geometry = render_layer.use_surfaces || render_layer.use_hair;
+ 	int requested_geometry_flags = Mesh::GEOMETRY_NONE;
+ 	if(render_layer.use_surfaces) {
+ 		requested_geometry_flags |= Mesh::GEOMETRY_TRIANGLES;
+ 	}
+ 	if(render_layer.use_hair) {
+ 		requested_geometry_flags |= Mesh::GEOMETRY_CURVES;
+ 	}
  	Mesh *mesh;
  
 -	if(!mesh_map.sync(&mesh, key)) {
 +	bool need_update;
 +	BL::CacheLibrary b_cachelib = b_parent.cache_library();
 +	bool use_dupli_override = b_dupli_ob && b_cachelib &&
 +	                          (b_cachelib.source_mode() == BL::CacheLibrary::source_mode_CACHE ||
 +	                           b_cachelib.display_mode() == BL::CacheLibrary::display_mode_RESULT);
 +	if (use_dupli_override) {
 +		/* if a dupli override (cached data) is used, identify the mesh by object and parent together,
 +		 * so that individual per-dupli overrides are possible.
 +		 */
 +		MeshKey key = MeshKey(b_parent, b_ob);
 +		need_update = mesh_map.sync(&mesh, b_parent, PointerRNA_NULL, key);
 +	}
 +	else {
 +		BL::ID key = (BKE_object_is_modified(b_ob))? b_ob: b_ob_data;
 +		need_update = mesh_map.sync(&mesh, key);
 +	}
 +
 +	if(!need_update) {
  		/* if transform was applied to mesh, need full update */
  		if(object_updated && mesh->transform_applied);
  		/* test if shaders changed, these can be object level so mesh




More information about the Bf-blender-cvs mailing list