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;
        }

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

Reply via email to