[Bf-blender-cvs] [dbbc7b4] alembic: Alembic: Fix wrong detection in Cycles whether cache is to be used for meshes

Sergey Sharybin noreply at git.blender.org
Wed Apr 22 14:06:50 CEST 2015


Commit: dbbc7b465d74482f81760267ecebb6db4842a68d
Author: Sergey Sharybin
Date:   Wed Apr 22 17:06:02 2015 +0500
Branches: alembic
https://developer.blender.org/rBdbbc7b465d74482f81760267ecebb6db4842a68d

Alembic: Fix wrong detection in Cycles whether cache is to be used for meshes

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

M	intern/cycles/blender/blender_mesh.cpp

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

diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp
index dbb4d58..7f13559 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -633,9 +633,13 @@ Mesh *BlenderSync::sync_mesh(BL::Object b_parent, bool object_updated, bool hide
 
 	bool need_update;
 	BL::CacheLibrary b_cachelib = b_parent.cache_library();
+	const BL::CacheLibrary::eval_mode_enum dupli_eval_mode =
+	        preview ? BL::CacheLibrary::eval_mode_REALTIME
+	                : BL::CacheLibrary::eval_mode_RENDER;
 	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);
+	       ((b_cachelib.eval_mode() & dupli_eval_mode) != 0) &&
+	        (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.
@@ -699,7 +703,7 @@ Mesh *BlenderSync::sync_mesh(BL::Object b_parent, bool object_updated, bool hide
 			b_ob.update_from_editmode();
 
 		bool need_undeformed = mesh->need_attribute(scene, ATTR_STD_GENERATED);
-		BL::Mesh b_mesh = (b_dupli_ob && b_parent)?
+		BL::Mesh b_mesh = (use_dupli_override)?
 		            dupli_to_mesh(b_data, b_scene, b_parent, b_dupli_ob, !preview, need_undeformed):
 		            object_to_mesh(b_data, b_ob, b_scene, true, !preview, need_undeformed);




More information about the Bf-blender-cvs mailing list