From f30e1fd2f0648d6c88bc61142ecc003ffa33ce11 Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Tue, 16 Nov 2021 14:51:03 -0600 Subject: Fix T93085: Incorrect geometry nodes modifier warning It's valid for a node group connected to the modifier not to have a geometry input, but I didn't consider that case with the last change I made here, f3bdabbe24fe591dc9. Differential Revision: https://developer.blender.org/D13231 --- source/blender/modifiers/intern/MOD_nodes.cc | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/source/blender/modifiers/intern/MOD_nodes.cc b/source/blender/modifiers/intern/MOD_nodes.cc index 70f6020f5a9..c1cdfa43920 100644 --- a/source/blender/modifiers/intern/MOD_nodes.cc +++ b/source/blender/modifiers/intern/MOD_nodes.cc @@ -1031,11 +1031,9 @@ static void check_property_socket_sync(const Object *ob, ModifierData *md) int i; LISTBASE_FOREACH_INDEX (const bNodeSocket *, socket, &nmd->node_group->inputs, i) { /* The first socket is the special geometry socket for the modifier object. */ - if (i == 0) { - if (socket->type == SOCK_GEOMETRY) { - continue; - } - BKE_modifier_set_error(ob, md, "The first node group input must be a geometry"); + if (i == 0 && socket->type == SOCK_GEOMETRY) { + geometry_socket_count++; + continue; } IDProperty *property = IDP_GetPropertyFromGroup(nmd->settings.properties, socket->identifier); @@ -1056,7 +1054,12 @@ static void check_property_socket_sync(const Object *ob, ModifierData *md) } } - if (geometry_socket_count > 1) { + if (geometry_socket_count == 1) { + if (((bNodeSocket *)nmd->node_group->inputs.first)->type != SOCK_GEOMETRY) { + BKE_modifier_set_error(ob, md, "Node group's geometry input must be the first"); + } + } + else if (geometry_socket_count > 1) { BKE_modifier_set_error(ob, md, "Node group can only have one geometry input"); } } -- cgit v1.2.3