[Bf-blender-cvs] [5d5397ea007] hair_guides_grooming: Make groom drawing work in edit mode with COW.
Lukas Tönne
noreply at git.blender.org
Sun May 27 14:53:16 CEST 2018
Commit: 5d5397ea0079708b69a76694dd9c87eb360c0d59
Author: Lukas Tönne
Date: Sun May 27 13:50:40 2018 +0100
Branches: hair_guides_grooming
https://developer.blender.org/rB5d5397ea0079708b69a76694dd9c87eb360c0d59
Make groom drawing work in edit mode with COW.
===================================================================
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 376e87b38a6..b8a4cdc7641 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
@@ -65,6 +65,7 @@ extern "C" {
#include "DNA_ID.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
+#include "DNA_groom_types.h"
#include "DNA_mesh_types.h"
#include "DNA_scene_types.h"
#include "DNA_object_types.h"
@@ -449,6 +450,14 @@ void updata_mesh_edit_mode_pointers(const Depsgraph *depsgraph,
mesh_cow->edit_btmesh->derivedCage = NULL;
}
+void update_groom_edit_mode_pointers(const Depsgraph *UNUSED(depsgraph),
+ const ID *id_orig, ID *id_cow)
+{
+ const Groom *groom_orig = (const Groom *)id_orig;
+ Groom *groom_cow = (Groom *)id_cow;
+ groom_cow->editgroom = groom_orig->editgroom;
+}
+
/* Edit data is stored and owned by original datablocks, copied ones
* are simply referencing to them.
*/
@@ -466,6 +475,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_GM:
+ update_groom_edit_mode_pointers(depsgraph, id_orig, id_cow);
+ break;
default:
break;
}
@@ -823,6 +835,12 @@ void discard_mesh_edit_mode_pointers(ID *id_cow)
mesh_cow->edit_btmesh = NULL;
}
+void discard_groom_edit_mode_pointers(ID *id_cow)
+{
+ Groom *groom_cow = (Groom *)id_cow;
+ groom_cow->editgroom = NULL;
+}
+
/* NULL-ify all edit mode pointers which points to data from
* original object.
*/
@@ -839,6 +857,9 @@ void discard_edit_mode_pointers(ID *id_cow)
case ID_CU:
discard_curve_edit_mode_pointers(id_cow);
break;
+ case ID_GM:
+ discard_groom_edit_mode_pointers(id_cow);
+ break;
default:
break;
}
More information about the Bf-blender-cvs
mailing list