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,

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to