Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2020-06-30 14:35:38 +0300
committerJacques Lucke <jacques@blender.org>2020-06-30 14:35:45 +0300
commit84901f2edaf1b00e242ca5d5c24c452ca9c5b922 (patch)
treeeb48ecaf2140d4b8e86f6c2d4166e698b8d8063b /source/blender/blenkernel/intern
parenta6775efb4f26531c299b805915f5865b06fad75b (diff)
Nodes: store nodes by bNodeType instead of idname
This is more efficient in most cases.
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r--source/blender/blenkernel/intern/derived_node_tree.cc7
-rw-r--r--source/blender/blenkernel/intern/node_tree_ref.cc3
2 files changed, 6 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/derived_node_tree.cc b/source/blender/blenkernel/intern/derived_node_tree.cc
index d6e1a127048..b53457812ba 100644
--- a/source/blender/blenkernel/intern/derived_node_tree.cc
+++ b/source/blender/blenkernel/intern/derived_node_tree.cc
@@ -174,7 +174,7 @@ BLI_NOINLINE void DerivedNodeTree::relink_group_inputs(const NodeTreeRef &group_
Span<DNode *> nodes_by_id,
DNode &group_node)
{
- Span<const NodeRef *> node_refs = group_ref.nodes_with_idname("NodeGroupInput");
+ Span<const NodeRef *> node_refs = group_ref.nodes_by_type("NodeGroupInput");
if (node_refs.size() == 0) {
return;
}
@@ -221,7 +221,7 @@ BLI_NOINLINE void DerivedNodeTree::relink_group_outputs(const NodeTreeRef &group
Span<DNode *> nodes_by_id,
DNode &group_node)
{
- Span<const NodeRef *> node_refs = group_ref.nodes_with_idname("NodeGroupOutput");
+ Span<const NodeRef *> node_refs = group_ref.nodes_by_type("NodeGroupOutput");
if (node_refs.size() == 0) {
return;
}
@@ -321,7 +321,8 @@ BLI_NOINLINE void DerivedNodeTree::store_in_this_and_init_ids(
DNode *node = m_nodes_by_id[node_index];
node->m_id = node_index;
- m_nodes_by_idname.lookup_or_add_default(node->idname()).append(node);
+ const bNodeType *nodetype = node->m_node_ref->bnode()->typeinfo;
+ m_nodes_by_type.lookup_or_add_default(nodetype).append(node);
for (DInputSocket *socket : node->m_inputs) {
socket->m_id = m_sockets_by_id.append_and_get_index(socket);
diff --git a/source/blender/blenkernel/intern/node_tree_ref.cc b/source/blender/blenkernel/intern/node_tree_ref.cc
index 54680293ccc..6bd3e2d2e5a 100644
--- a/source/blender/blenkernel/intern/node_tree_ref.cc
+++ b/source/blender/blenkernel/intern/node_tree_ref.cc
@@ -79,7 +79,8 @@ NodeTreeRef::NodeTreeRef(bNodeTree *btree) : m_btree(btree)
}
for (NodeRef *node : m_nodes_by_id) {
- m_nodes_by_idname.lookup_or_add_default(node->idname()).append(node);
+ const bNodeType *nodetype = node->m_bnode->typeinfo;
+ m_nodes_by_type.lookup_or_add_default(nodetype).append(node);
}
}