[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