diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2018-12-07 03:04:12 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2018-12-07 03:06:05 +0300 |
commit | 3cce7b7ab922392ce50037f5f3efefa8784f03b0 (patch) | |
tree | 28d1fb74e46ce1cfdb91fa3be2595bcdc40401d6 /source/blender/depsgraph | |
parent | d40bffa17f6dabac3f4aef229d11824c2554bba3 (diff) |
Fix T58325: Local view Bug
Aka all the thousand of reports duplicated here.
I should have seen this coming, since I had to add a hack in the first
place because things were "not working".
I should have figured out earlier that COW handles base in a really
special way, with its own special object_runtime_backup hack.
Diffstat (limited to 'source/blender/depsgraph')
-rw-r--r-- | source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc | 3 |
1 files changed, 3 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 98e1bf49c5d..f8754c530a0 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 @@ -812,6 +812,7 @@ static void deg_update_copy_on_write_animation(const Depsgraph *depsgraph, typedef struct ObjectRuntimeBackup { Object_Runtime runtime; short base_flag; + unsigned short base_local_view_bits; } ObjectRuntimeBackup; /* Make a backup of object's evaluation runtime data, additionally @@ -835,6 +836,7 @@ static void deg_backup_object_runtime( } /* Make a backup of base flags. */ object_runtime_backup->base_flag = object->base_flag; + object_runtime_backup->base_local_view_bits = object->base_local_view_bits; } static void deg_restore_object_runtime( @@ -872,6 +874,7 @@ static void deg_restore_object_runtime( } } object->base_flag = object_runtime_backup->base_flag; + object->base_local_view_bits = object_runtime_backup->base_local_view_bits; } ID *deg_update_copy_on_write_datablock(const Depsgraph *depsgraph, |