diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-06-22 16:36:29 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-06-22 17:00:06 +0300 |
commit | 0b988a0aadb7646277757e11eba31c3e39a88f7f (patch) | |
tree | 35fc0079f23f1a7a50cb31819b4c7a4e6965a9c6 | |
parent | 8b633745ffd0403fd961bef35184f2c47cc923ca (diff) |
Nodes: show shader -> other socket type as invalid link
-rw-r--r-- | source/blender/nodes/shader/node_shader_tree.c | 11 |
1 files changed, 11 insertions, 0 deletions
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; |