[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