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-05-17 12:11:25 +0300
committerJacques Lucke <jacques@blender.org>2021-05-17 12:11:25 +0300
commitba698f081270f807820a63355a3c7bb83f5f5a38 (patch)
tree32c38e44a97bde97b17e4efe66f7f7fd95fe1927 /source/blender/nodes/geometry/node_geometry_tree.cc
parent7e552b356d833107289c942295c3ddcb0cbf9dae (diff)
Geometry Nodes: update callbacks with 2 new socket types
Diffstat (limited to 'source/blender/nodes/geometry/node_geometry_tree.cc')
-rw-r--r--source/blender/nodes/geometry/node_geometry_tree.cc15
1 files changed, 9 insertions, 6 deletions
diff --git a/source/blender/nodes/geometry/node_geometry_tree.cc b/source/blender/nodes/geometry/node_geometry_tree.cc
index f13ddabbf2c..f4cd00b88ed 100644
--- a/source/blender/nodes/geometry/node_geometry_tree.cc
+++ b/source/blender/nodes/geometry/node_geometry_tree.cc
@@ -86,12 +86,13 @@ static void foreach_nodeclass(Scene *UNUSED(scene), void *calldata, bNodeClassCa
static bool geometry_node_tree_validate_link(bNodeTree *UNUSED(ntree), bNodeLink *link)
{
- /* Geometry, string, object and collection sockets can only be connected to themselves. */
- if (ELEM(link->fromsock->type, SOCK_GEOMETRY, SOCK_STRING, SOCK_OBJECT, SOCK_COLLECTION) ||
- ELEM(link->tosock->type, SOCK_GEOMETRY, SOCK_STRING, SOCK_OBJECT, SOCK_COLLECTION)) {
- return (link->tosock->type == link->fromsock->type);
+ /* Geometry, string, object, material, texture and collection sockets can only be connected to
+ * themselves. The other types can be converted between each other. */
+ if (ELEM(link->fromsock->type, SOCK_FLOAT, SOCK_VECTOR, SOCK_RGBA, SOCK_BOOLEAN, SOCK_INT) &&
+ ELEM(link->tosock->type, SOCK_FLOAT, SOCK_VECTOR, SOCK_RGBA, SOCK_BOOLEAN, SOCK_INT)) {
+ return true;
}
- return true;
+ return (link->tosock->type == link->fromsock->type);
}
static bool geometry_node_tree_socket_type_valid(eNodeSocketDatatype socket_type,
@@ -106,7 +107,9 @@ static bool geometry_node_tree_socket_type_valid(eNodeSocketDatatype socket_type
SOCK_STRING,
SOCK_OBJECT,
SOCK_GEOMETRY,
- SOCK_COLLECTION);
+ SOCK_COLLECTION,
+ SOCK_TEXTURE,
+ SOCK_MATERIAL);
}
void register_node_tree_type_geo(void)