diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-07-05 17:55:46 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-07-05 17:56:47 +0300 |
commit | 5db711fdd9d23ef2e54f19545398a6520fa02b56 (patch) | |
tree | 6256efab318ba30bd5304301df296d3137ff8627 | |
parent | ec98d8cc9e34b3b4c8b5e73997e708276775c20a (diff) |
Depsgraph: Preserve engine data when doing object copy on write update
-rw-r--r-- | source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc | 6 |
1 files changed, 6 insertions, 0 deletions
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, |