diff options
author | Germano <germano.costa@ig.com.br> | 2018-05-28 19:04:21 +0300 |
---|---|---|
committer | Germano <germano.costa@ig.com.br> | 2018-05-28 19:47:04 +0300 |
commit | f8d0447dfb7cbbfe4a8a29c4e7d23bb5890e421f (patch) | |
tree | 0579e03ae0071c1358032ecca0e451f6e7d748e0 /source/blender/depsgraph | |
parent | f36315dd3416001f187076d1415aac6b023447f4 (diff) |
CoW: Skip used pointers in MetaBall edit mode.
Diffstat (limited to 'source/blender/depsgraph')
-rw-r--r-- | source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc | 21 |
1 files changed, 21 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 3cc17542487..88e5814baa6 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 @@ -77,6 +77,7 @@ extern "C" { # include "DNA_lattice_types.h" # include "DNA_linestyle_types.h" # include "DNA_material_types.h" +# include "DNA_meta_types.h" # include "DNA_node_types.h" # include "DNA_texture_types.h" # include "DNA_world_types.h" @@ -429,6 +430,14 @@ void updata_curve_edit_mode_pointers(const Depsgraph * /*depsgraph*/, curve_cow->editfont = curve_orig->editfont; } +void update_mball_edit_mode_pointers(const Depsgraph * /*depsgraph*/, + const ID *id_orig, ID *id_cow) +{ + const MetaBall *mball_orig = (const MetaBall *)id_orig; + MetaBall *mball_cow = (MetaBall *)id_cow; + mball_cow->editelems = mball_orig->editelems; +} + void updata_mesh_edit_mode_pointers(const Depsgraph *depsgraph, const ID *id_orig, ID *id_cow) { @@ -468,6 +477,9 @@ void updata_edit_mode_pointers(const Depsgraph *depsgraph, case ID_CU: updata_curve_edit_mode_pointers(depsgraph, id_orig, id_cow); break; + case ID_MB: + update_mball_edit_mode_pointers(depsgraph, id_orig, id_cow); + break; default: break; } @@ -815,6 +827,12 @@ void discard_curve_edit_mode_pointers(ID *id_cow) curve_cow->editfont = NULL; } +void discard_mball_edit_mode_pointers(ID *id_cow) +{ + MetaBall *mball_cow = (MetaBall *)id_cow; + mball_cow->editelems = NULL; +} + void discard_mesh_edit_mode_pointers(ID *id_cow) { Mesh *mesh_cow = (Mesh *)id_cow; @@ -842,6 +860,9 @@ void discard_edit_mode_pointers(ID *id_cow) case ID_CU: discard_curve_edit_mode_pointers(id_cow); break; + case ID_MB: + discard_mball_edit_mode_pointers(id_cow); + break; default: break; } |