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>2021-09-14 17:34:31 +0300
committerJacques Lucke <jacques@blender.org>2021-09-14 17:34:31 +0300
commitedaeec3e720cacf789d0b3c438df6c2944adbd8b (patch)
tree083aa039b1bb515f8dfae28e6cc4b9416c5ed600 /source/blender/nodes/intern/node_socket.cc
parentdee0b56b9216de8f37589b15be2d21cc1b946773 (diff)
Nodes: cache node declaration on node
Previously, it was necessary to rebuild the node declaration every time it was used. Now it is cached per node for easy and fast access. For more details on what this is, look at the comment in `DNA_node_types.h`. Differential Revision: https://developer.blender.org/D12471
Diffstat (limited to 'source/blender/nodes/intern/node_socket.cc')
-rw-r--r--source/blender/nodes/intern/node_socket.cc8
1 files changed, 3 insertions, 5 deletions
diff --git a/source/blender/nodes/intern/node_socket.cc b/source/blender/nodes/intern/node_socket.cc
index 8efd6c55459..31260f95242 100644
--- a/source/blender/nodes/intern/node_socket.cc
+++ b/source/blender/nodes/intern/node_socket.cc
@@ -269,11 +269,9 @@ void node_verify_sockets(bNodeTree *ntree, bNode *node, bool do_id_user)
return;
}
if (ntype->declare != nullptr) {
- blender::nodes::NodeDeclaration node_decl;
- blender::nodes::NodeDeclarationBuilder builder{node_decl};
- ntype->declare(builder);
- if (!node_decl.matches(*node)) {
- refresh_node(*ntree, *node, node_decl, do_id_user);
+ nodeDeclarationEnsure(ntree, node);
+ if (!node->declaration->matches(*node)) {
+ refresh_node(*ntree, *node, *node->declaration, do_id_user);
}
return;
}