[Bf-blender-cvs] [5db711fdd9d] blender2.8: Depsgraph: Preserve engine data when doing object copy on write update

Sergey Sharybin noreply at git.blender.org
Thu Jul 5 16:56:53 CEST 2018


Commit: 5db711fdd9d23ef2e54f19545398a6520fa02b56
Author: Sergey Sharybin
Date:   Thu Jul 5 16:55:46 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB5db711fdd9d23ef2e54f19545398a6520fa02b56

Depsgraph: Preserve engine data when doing object copy on write update

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

M	source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc

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

diff --git a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
index 0f49d57a826..447a8af6235 100644
--- a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
+++ b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
@@ -713,6 +713,7 @@ typedef struct ObjectRuntimeBackup {
 	CurveCache *curve_cache;
 	Object_Runtime runtime;
 	short base_flag;
+	ListBase drawdata;
 } ObjectRuntimeBackup;
 
 /* Make a backup of object's evaluation runtime data, additionally
@@ -739,6 +740,9 @@ static void deg_backup_object_runtime(
 	object->curve_cache = NULL;
 	/* Make a backup of base flags. */
 	object_runtime_backup->base_flag = object->base_flag;
+	/* Make backup of object draw data.*/
+	object_runtime_backup->drawdata = object->drawdata;
+	BLI_listbase_clear(&object->drawdata);
 }
 
 static void deg_restore_object_runtime(
@@ -778,6 +782,8 @@ static void deg_restore_object_runtime(
 		object->curve_cache = object_runtime_backup->curve_cache;
 	}
 	object->base_flag = object_runtime_backup->base_flag;
+	/* Restore draw data. */
+	object->drawdata = object_runtime_backup->drawdata;
 }
 
 ID *deg_update_copy_on_write_datablock(const Depsgraph *depsgraph,



More information about the Bf-blender-cvs mailing list