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:
authorWannes Malfait <Wannes>2021-01-16 22:09:19 +0300
committerHans Goudey <h.goudey@me.com>2021-01-16 22:09:19 +0300
commit6fb7d0f5592793196c8100ef6cdbdf99ed695952 (patch)
tree19c4c7a5dcdf724840eae52711358d8e87c2ce19 /source/blender/nodes/geometry/node_geometry_tree.cc
parent1e193a0b564c72c006203a1e349269e4bb004d0e (diff)
Fix T84713: Geometry nodes reroute sockets have incorrect type
This implements the node tree update function, which is needed so that the reroutes get updated to the correct type. It is based on the same code in the shader and compositor node trees. Differential Revision: https://developer.blender.org/D10123
Diffstat (limited to 'source/blender/nodes/geometry/node_geometry_tree.cc')
-rw-r--r--source/blender/nodes/geometry/node_geometry_tree.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/nodes/geometry/node_geometry_tree.cc b/source/blender/nodes/geometry/node_geometry_tree.cc
index da77e8896fb..87178c52ab9 100644
--- a/source/blender/nodes/geometry/node_geometry_tree.cc
+++ b/source/blender/nodes/geometry/node_geometry_tree.cc
@@ -32,6 +32,8 @@
#include "RNA_access.h"
+#include "node_common.h"
+
bNodeTreeType *ntreeType_Geometry;
static void geometry_node_tree_get_from_context(const bContext *C,
@@ -63,6 +65,12 @@ static void geometry_node_tree_get_from_context(const bContext *C,
}
}
+static void geometry_node_tree_update(bNodeTree *ntree)
+{
+ /* Needed to give correct types to reroutes. */
+ ntree_update_reroute_nodes(ntree);
+}
+
void register_node_tree_type_geo(void)
{
bNodeTreeType *tt = ntreeType_Geometry = static_cast<bNodeTreeType *>(
@@ -73,7 +81,7 @@ void register_node_tree_type_geo(void)
tt->ui_icon = 0; /* defined in drawnode.c */
strcpy(tt->ui_description, N_("Geometry nodes"));
tt->rna_ext.srna = &RNA_GeometryNodeTree;
-
+ tt->update = geometry_node_tree_update;
tt->get_from_context = geometry_node_tree_get_from_context;
ntreeTypeAdd(tt);