From 710e46cb2d966d4a05064e3284aefe71e1bc99b2 Mon Sep 17 00:00:00 2001 From: Aaron Carlisle Date: Wed, 26 Jan 2022 15:28:05 -0500 Subject: Cleanup: Move specific node tree execution functions into respective module `node_exec` had some code that was specific to texture/shader nodes. These functions arent used outside there module so limit there declarations. Also make a function static that is only used in `node_exec.c` Reviewed By: JacquesLucke Differential Revision: https://developer.blender.org/D13899 --- source/blender/nodes/intern/node_exec.cc | 59 +------------------------------- source/blender/nodes/intern/node_exec.h | 20 ----------- 2 files changed, 1 insertion(+), 78 deletions(-) (limited to 'source/blender/nodes/intern') diff --git a/source/blender/nodes/intern/node_exec.cc b/source/blender/nodes/intern/node_exec.cc index 4ff662036c3..788d938ca6f 100644 --- a/source/blender/nodes/intern/node_exec.cc +++ b/source/blender/nodes/intern/node_exec.cc @@ -35,7 +35,7 @@ #include "node_exec.h" #include "node_util.h" -int node_exec_socket_use_stack(bNodeSocket *sock) +static int node_exec_socket_use_stack(bNodeSocket *sock) { /* NOTE: INT supported as FLOAT. Only for EEVEE. */ return ELEM(sock->type, SOCK_INT, SOCK_FLOAT, SOCK_VECTOR, SOCK_RGBA, SOCK_SHADER); @@ -276,60 +276,3 @@ void ntree_exec_end(bNodeTreeExec *exec) MEM_freeN(exec); } - -/**** Material/Texture trees ****/ - -bNodeThreadStack *ntreeGetThreadStack(bNodeTreeExec *exec, int thread) -{ - ListBase *lb = &exec->threadstack[thread]; - bNodeThreadStack *nts; - - for (nts = (bNodeThreadStack *)lb->first; nts; nts = nts->next) { - if (!nts->used) { - nts->used = true; - break; - } - } - - if (!nts) { - nts = MEM_cnew("bNodeThreadStack"); - nts->stack = (bNodeStack *)MEM_dupallocN(exec->stack); - nts->used = true; - BLI_addtail(lb, nts); - } - - return nts; -} - -void ntreeReleaseThreadStack(bNodeThreadStack *nts) -{ - nts->used = false; -} - -bool ntreeExecThreadNodes(bNodeTreeExec *exec, bNodeThreadStack *nts, void *callerdata, int thread) -{ - bNodeStack *nsin[MAX_SOCKET] = {nullptr}; /* arbitrary... watch this */ - bNodeStack *nsout[MAX_SOCKET] = {nullptr}; /* arbitrary... watch this */ - bNodeExec *nodeexec; - bNode *node; - int n; - - /* nodes are presorted, so exec is in order of list */ - - for (n = 0, nodeexec = exec->nodeexec; n < exec->totnodes; n++, nodeexec++) { - node = nodeexec->node; - if (node->need_exec) { - node_get_stack(node, nts->stack, nsin, nsout); - /* Handle muted nodes... - * If the mute func is not set, assume the node should never be muted, - * and hence execute it! - */ - if (node->typeinfo->exec_fn && !(node->flag & NODE_MUTED)) { - node->typeinfo->exec_fn(callerdata, thread, node, &nodeexec->data, nsin, nsout); - } - } - } - - /* signal to that all went OK, for render */ - return true; -} diff --git a/source/blender/nodes/intern/node_exec.h b/source/blender/nodes/intern/node_exec.h index b2e1c6564b6..115389afd67 100644 --- a/source/blender/nodes/intern/node_exec.h +++ b/source/blender/nodes/intern/node_exec.h @@ -71,9 +71,6 @@ typedef struct bNodeThreadStack { bool used; } bNodeThreadStack; -/** Supported socket types in old nodes. */ -int node_exec_socket_use_stack(struct bNodeSocket *sock); - /** For a given socket, find the actual stack entry. */ struct bNodeStack *node_get_socket_stack(struct bNodeStack *stack, struct bNodeSocket *sock); void node_get_stack(struct bNode *node, @@ -86,23 +83,6 @@ struct bNodeTreeExec *ntree_exec_begin(struct bNodeExecContext *context, bNodeInstanceKey parent_key); void ntree_exec_end(struct bNodeTreeExec *exec); -struct bNodeThreadStack *ntreeGetThreadStack(struct bNodeTreeExec *exec, int thread); -void ntreeReleaseThreadStack(struct bNodeThreadStack *nts); -bool ntreeExecThreadNodes(struct bNodeTreeExec *exec, - struct bNodeThreadStack *nts, - void *callerdata, - int thread); - -struct bNodeTreeExec *ntreeShaderBeginExecTree_internal(struct bNodeExecContext *context, - struct bNodeTree *ntree, - bNodeInstanceKey parent_key); -void ntreeShaderEndExecTree_internal(struct bNodeTreeExec *exec); - -struct bNodeTreeExec *ntreeTexBeginExecTree_internal(struct bNodeExecContext *context, - struct bNodeTree *ntree, - bNodeInstanceKey parent_key); -void ntreeTexEndExecTree_internal(struct bNodeTreeExec *exec); - #ifdef __cplusplus } #endif -- cgit v1.2.3