Commit: a316d3b6c660a5ae9fbcae1f1403dad4686c8ecf
Author: Alexander Gavrilov
Date:   Sat Aug 1 19:56:53 2020 +0300
Branches: blender-v2.90-release master
https://developer.blender.org/rBa316d3b6c660a5ae9fbcae1f1403dad4686c8ecf

Eevee: do not rely on the SOCK_HIDE_VALUE flag for node group sockets.

When disconnecting links for defaulted node group inputs, recurse
into the nested node group nodes, instead of checking the socket
flag. Otherwise the behavior is confusing and differs from Cycles.

Differential Revision: https://developer.blender.org/D8455

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

M       source/blender/nodes/shader/node_shader_tree.c

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

diff --git a/source/blender/nodes/shader/node_shader_tree.c 
b/source/blender/nodes/shader/node_shader_tree.c
index 179a92ec7bd..758f7edfe49 100644
--- a/source/blender/nodes/shader/node_shader_tree.c
+++ b/source/blender/nodes/shader/node_shader_tree.c
@@ -344,15 +344,23 @@ static void 
ntree_shader_unlink_hidden_value_sockets(bNode *group_node, bNodeSoc
   bool removed_link = false;
 
   for (node = group_ntree->nodes.first; node; node = node->next) {
+    const bool is_group = ELEM(node->type, NODE_GROUP, NODE_CUSTOM_GROUP) && 
(node->id != NULL);
+
     LISTBASE_FOREACH (bNodeSocket *, sock, &node->inputs) {
-      if ((sock->flag & SOCK_HIDE_VALUE) == 0) {
+      if (!is_group && (sock->flag & SOCK_HIDE_VALUE) == 0) {
         continue;
       }
       /* If socket is linked to a group input node and sockets id match. */
       if (sock && sock->link && sock->link->fromnode->type == 
NODE_GROUP_INPUT) {
         if (STREQ(isock->identifier, sock->link->fromsock->identifier)) {
-          nodeRemLink(group_ntree, sock->link);
-          removed_link = true;
+          if (is_group) {
+            /* Recursively unlink sockets within the nested group. */
+            ntree_shader_unlink_hidden_value_sockets(node, sock);
+          }
+          else {
+            nodeRemLink(group_ntree, sock->link);
+            removed_link = true;
+          }
         }
       }
     }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to