[Bf-blender-cvs] [82863e94c97] temp-T96709-painting-target: Replace depsgraph update with pbvh node tagging.

Jeroen Bakker noreply at git.blender.org
Tue Apr 5 11:33:07 CEST 2022


Commit: 82863e94c97f41302c2001b6e2d8a6e74a2d3f1c
Author: Jeroen Bakker
Date:   Tue Apr 5 10:51:21 2022 +0200
Branches: temp-T96709-painting-target
https://developer.blender.org/rB82863e94c97f41302c2001b6e2d8a6e74a2d3f1c

Replace depsgraph update with pbvh node tagging.

===================================================================

M	source/blender/blenkernel/BKE_pbvh.h
M	source/blender/blenkernel/intern/pbvh.c
M	source/blender/editors/sculpt_paint/paint_canvas.cc

===================================================================

diff --git a/source/blender/blenkernel/BKE_pbvh.h b/source/blender/blenkernel/BKE_pbvh.h
index eadbe52d091..0d481dece81 100644
--- a/source/blender/blenkernel/BKE_pbvh.h
+++ b/source/blender/blenkernel/BKE_pbvh.h
@@ -273,6 +273,7 @@ bool BKE_pbvh_bmesh_update_topology(PBVH *pbvh,
 void BKE_pbvh_node_mark_update(PBVHNode *node);
 void BKE_pbvh_node_mark_update_mask(PBVHNode *node);
 void BKE_pbvh_node_mark_update_color(PBVHNode *node);
+void BKE_pbvh_mark_update_color(PBVH *pbvh);
 void BKE_pbvh_node_mark_update_visibility(PBVHNode *node);
 void BKE_pbvh_node_mark_rebuild_draw(PBVHNode *node);
 void BKE_pbvh_node_mark_redraw(PBVHNode *node);
diff --git a/source/blender/blenkernel/intern/pbvh.c b/source/blender/blenkernel/intern/pbvh.c
index 3ed3c7badc3..38c9629f6e1 100644
--- a/source/blender/blenkernel/intern/pbvh.c
+++ b/source/blender/blenkernel/intern/pbvh.c
@@ -1724,6 +1724,13 @@ BMesh *BKE_pbvh_get_bmesh(PBVH *pbvh)
   return pbvh->bm;
 }
 
+void BKE_pbvh_mark_update_color(PBVH *pbvh)
+{
+  for (int n = 0; n < pbvh->totnode; n++) {
+    BKE_pbvh_node_mark_update_color(&pbvh->nodes[n]);
+  }
+}
+
 /***************************** Node Access ***********************************/
 
 void BKE_pbvh_node_mark_update(PBVHNode *node)
diff --git a/source/blender/editors/sculpt_paint/paint_canvas.cc b/source/blender/editors/sculpt_paint/paint_canvas.cc
index 24b5223d825..1f0d385dbb2 100644
--- a/source/blender/editors/sculpt_paint/paint_canvas.cc
+++ b/source/blender/editors/sculpt_paint/paint_canvas.cc
@@ -11,6 +11,7 @@
 #include "BKE_customdata.h"
 #include "BKE_material.h"
 #include "BKE_paint.h"
+#include "BKE_pbvh.h"
 
 #include "DEG_depsgraph.h"
 
@@ -225,6 +226,10 @@ void ED_paint_do_msg_notify_active_tool_changed(struct bContext *C,
   if (ob == nullptr) {
     return;
   }
-  DEG_id_tag_update(&ob->id, ID_RECALC_SHADING);
+  if (ob->sculpt == nullptr) {
+    return;
+  }
+  PBVH *pbvh = ob->sculpt->pbvh;
+  BKE_pbvh_mark_update_color(pbvh);
+}
 }
-}
\ No newline at end of file



More information about the Bf-blender-cvs mailing list