[Bf-blender-cvs] [262efaf8605] node-tree-update-refactor: cleanup
Jacques Lucke
noreply at git.blender.org
Mon Nov 15 19:09:21 CET 2021
Commit: 262efaf86054ae1d0421d0296935c1a44b341b6d
Author: Jacques Lucke
Date: Thu Nov 11 13:47:21 2021 +0100
Branches: node-tree-update-refactor
https://developer.blender.org/rB262efaf86054ae1d0421d0296935c1a44b341b6d
cleanup
===================================================================
M source/blender/blenkernel/BKE_node_tree_update.h
M source/blender/blenkernel/intern/node_tree_update.cc
M source/blender/editors/space_node/node_edit.cc
===================================================================
diff --git a/source/blender/blenkernel/BKE_node_tree_update.h b/source/blender/blenkernel/BKE_node_tree_update.h
index 25d43637d36..c4d742c1d0d 100644
--- a/source/blender/blenkernel/BKE_node_tree_update.h
+++ b/source/blender/blenkernel/BKE_node_tree_update.h
@@ -58,6 +58,9 @@ typedef struct NodeTreeUpdateExtraParams {
*/
struct bNodeTree *only_tagged_tree;
+ /**
+ * Data passed into the callbacks.
+ */
void *user_data;
/**
@@ -67,8 +70,7 @@ typedef struct NodeTreeUpdateExtraParams {
void (*tree_changed_fn)(struct ID *, struct bNodeTree *, void *user_data);
/**
- * Called for every tree whose interface (e.g. input sockets) changed in some way. Other
- * (non-node-tree) data blocks may have to update when that happens.
+ * Called for every tree whose interface (e.g. input sockets) changed in some way.
*/
void (*tree_interface_changed_fn)(struct ID *, struct bNodeTree *, void *user_data);
@@ -79,7 +81,10 @@ typedef struct NodeTreeUpdateExtraParams {
void (*tree_output_changed_fn)(struct ID *, struct bNodeTree *, void *user_data);
} NodeTreeUpdateExtraParams;
-void BKE_node_tree_update(struct Main *bmain, struct NodeTreeUpdateExtraParams *params);
+/**
+ * Updates #bmain based on changes to node trees.
+ */
+void BKE_node_tree_update_main(struct Main *bmain, struct NodeTreeUpdateExtraParams *params);
#ifdef __cplusplus
}
diff --git a/source/blender/blenkernel/intern/node_tree_update.cc b/source/blender/blenkernel/intern/node_tree_update.cc
index c16f9e5afee..2b05f88ffc4 100644
--- a/source/blender/blenkernel/intern/node_tree_update.cc
+++ b/source/blender/blenkernel/intern/node_tree_update.cc
@@ -85,7 +85,7 @@ void BKE_node_tree_update_tag_interface(bNodeTree *tree)
tree->update |= NTREE_UPDATE;
}
-void BKE_node_tree_update(Main *bmain, NodeTreeUpdateExtraParams *params)
+void BKE_node_tree_update_main(Main *bmain, NodeTreeUpdateExtraParams *params)
{
FOREACH_NODETREE_BEGIN (bmain, ntree, id) {
ntreeUpdateTree(bmain, ntree);
diff --git a/source/blender/editors/space_node/node_edit.cc b/source/blender/editors/space_node/node_edit.cc
index 85cf5a9116d..9ceb7e5fadb 100644
--- a/source/blender/editors/space_node/node_edit.cc
+++ b/source/blender/editors/space_node/node_edit.cc
@@ -470,23 +470,6 @@ static void handle_tree_change(ID *id, bNodeTree *ntree)
}
}
-static void handle_tree_interface_change(Main *bmain, bNodeTree *ntree)
-{
- if (ntree->type != NTREE_GEOMETRY) {
- return;
- }
- LISTBASE_FOREACH (Object *, object, &bmain->objects) {
- LISTBASE_FOREACH (ModifierData *, md, &object->modifiers) {
- if (md->type == eModifierType_Nodes) {
- NodesModifierData *nmd = (NodesModifierData *)md;
- if (nmd->node_group == ntree) {
- MOD_nodes_update_interface(object, nmd);
- }
- }
- }
- }
-}
-
void ED_node_tree_propagate_change(bContext *UNUSED(C), Main *bmain, bNodeTree *only_tagged_tree)
{
struct UserData {
@@ -499,10 +482,6 @@ void ED_node_tree_propagate_change(bContext *UNUSED(C), Main *bmain, bNodeTree *
params.tree_changed_fn = [](ID *id, bNodeTree *ntree, void *UNUSED(user_data)) {
handle_tree_change(id, ntree);
};
- params.tree_interface_changed_fn = [](ID *UNUSED(id), bNodeTree *ntree, void *user_data) {
- UserData *data = (UserData *)user_data;
- handle_tree_interface_change(data->bmain, ntree);
- };
params.tree_output_changed_fn = [](ID *id, bNodeTree *ntree, void *UNUSED(user_data)) {
if (id != nullptr) {
DEG_id_tag_update(id, 0);
@@ -510,7 +489,7 @@ void ED_node_tree_propagate_change(bContext *UNUSED(C), Main *bmain, bNodeTree *
DEG_id_tag_update(&ntree->id, 0);
};
- BKE_node_tree_update(bmain, ¶ms);
+ BKE_node_tree_update_main(bmain, ¶ms);
}
void ED_node_set_tree_type(SpaceNode *snode, bNodeTreeType *typeinfo)
More information about the Bf-blender-cvs
mailing list