[Bf-blender-cvs] [f30e1fd2f06] blender-v3.0-release: Fix T93085: Incorrect geometry nodes modifier warning

Hans Goudey noreply at git.blender.org
Tue Nov 16 21:54:18 CET 2021


Commit: f30e1fd2f0648d6c88bc61142ecc003ffa33ce11
Author: Hans Goudey
Date:   Tue Nov 16 14:51:03 2021 -0600
Branches: blender-v3.0-release
https://developer.blender.org/rBf30e1fd2f0648d6c88bc61142ecc003ffa33ce11

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

===================================================================

M	source/blender/modifiers/intern/MOD_nodes.cc

===================================================================

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");
   }
 }



More information about the Bf-blender-cvs mailing list