[Bf-blender-cvs] [0b988a0aadb] master: Nodes: show shader -> other socket type as invalid link

Brecht Van Lommel noreply at git.blender.org
Sat Jun 22 16:00:50 CEST 2019


Commit: 0b988a0aadb7646277757e11eba31c3e39a88f7f
Author: Brecht Van Lommel
Date:   Sat Jun 22 15:36:29 2019 +0200
Branches: master
https://developer.blender.org/rB0b988a0aadb7646277757e11eba31c3e39a88f7f

Nodes: show shader -> other socket type as invalid link

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

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 05ca9394786..8af570aea08 100644
--- a/source/blender/nodes/shader/node_shader_tree.c
+++ b/source/blender/nodes/shader/node_shader_tree.c
@@ -172,6 +172,16 @@ static void update(bNodeTree *ntree)
   }
 }
 
+static bool shader_validate_link(bNodeTree *UNUSED(ntree), bNodeLink *link)
+{
+  /* Can't connect shader into other socket types, other way around is fine
+   * since it will be interpreted as emission. */
+  if (link->fromsock->type == SOCK_SHADER) {
+    return (link->tosock->type == SOCK_SHADER);
+  }
+  return true;
+}
+
 bNodeTreeType *ntreeType_Shader;
 
 void register_node_tree_type_sh(void)
@@ -192,6 +202,7 @@ void register_node_tree_type_sh(void)
   tt->update = update;
   tt->poll = shader_tree_poll;
   tt->get_from_context = shader_get_from_context;
+  tt->validate_link = shader_validate_link;
 
   tt->ext.srna = &RNA_ShaderNodeTree;



More information about the Bf-blender-cvs mailing list