diff options
-rw-r--r-- | source/blender/blenkernel/intern/node.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 7fd0a2d661a..c614b6910c2 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -2195,18 +2195,24 @@ static void group_tag_used_outputs(bNode *gnode, bNodeStack *stack, bNodeStack * { bNodeTree *ntree= (bNodeTree *)gnode->id; bNode *node; + bNodeSocket *sock; stack+= gnode->stack_index; for(node= ntree->nodes.first; node; node= node->next) { if(node->typeinfo->execfunc) { - bNodeSocket *sock; - for(sock= node->inputs.first; sock; sock= sock->next) { bNodeStack *ns = get_socket_stack(stack, sock, gin); ns->hasoutput= 1; } } + + /* set stack types (for local stack entries) */ + for(sock= node->outputs.first; sock; sock= sock->next) { + bNodeStack *ns = get_socket_stack(stack, sock, NULL); + if (ns) + ns->sockettype = sock->type; + } } } @@ -2313,6 +2319,13 @@ void ntreeBeginExecTree(bNodeTree *ntree) } } + /* set stack types (for local stack entries) */ + for(sock= node->outputs.first; sock; sock= sock->next) { + ns = get_socket_stack(ntree->stack, sock, NULL); + if (ns) + ns->sockettype = sock->type; + } + if(node->type==NODE_GROUP && node->id) { node_get_stack(node, ntree->stack, nsin, NULL, NULL); group_tag_used_outputs(node, ntree->stack, nsin); |