77 for (
bNodeLink &iter_link : internal_links) {
78 if (iter_link.tosock == sock) {
79 sock->
stack_index = iter_link.fromsock->stack_index;
83 sock->
link = &iter_link;
124 switch (sock->
type) {
158 ntree->ensure_topology_cache();
159 const Span<bNode *> nodelist = ntree->toposort_left_to_right();
164 exec->nodetree = ntree;
176 if (node->is_muted() || node->is_reroute()) {
192 exec->stacksize = index;
197 for (n = 0; n <
exec->stacksize; n++) {
198 exec->stack[n].hasinput = 1;
202 for (n = 0, nodeexec =
exec->nodeexec; n < nodelist.
size(); n++, nodeexec++) {
203 node = nodeexec->
node = nodelist[n];
242 for (n = 0, nodeexec =
exec->nodeexec; n < exec->totnodes; n++, nodeexec++) {
248 if (
exec->nodeexec) {
void BKE_ntree_update_after_single_tree_change(Main &bmain, bNodeTree &modified_tree, const NodeTreeUpdateExtraParams ¶ms={})
#define LISTBASE_FOREACH(type, var, list)
Read Guarded memory(de)allocation.
constexpr int64_t size() const
constexpr IndexRange index_range() const
void * MEM_calloc_arrayN(size_t len, size_t size, const char *str)
void * MEM_callocN(size_t len, const char *str)
void MEM_freeN(void *vmemh)
bNodeInstanceKey node_instance_key(bNodeInstanceKey parent_key, const bNodeTree *ntree, const bNode *node)
bNodeTreeExec * ntree_exec_begin(bNodeExecContext *context, bNodeTree *ntree, bNodeInstanceKey parent_key)
void node_get_stack(bNode *node, bNodeStack *stack, bNodeStack **in, bNodeStack **out)
static void node_init_output_index(bNodeSocket *sock, int *index)
bNodeStack * node_get_socket_stack(bNodeStack *stack, bNodeSocket *sock)
static void node_init_input_index(bNodeSocket *sock, int *index)
static bNodeStack * setup_stack(bNodeStack *stack, bNodeTree *ntree, bNode *node, bNodeSocket *sock)
static void node_init_output_index_muted(bNodeSocket *sock, int *index, const blender::MutableSpan< bNodeLink > internal_links)
static int node_exec_socket_use_stack(bNodeSocket *sock)
void ntree_exec_end(bNodeTreeExec *exec)
static void exec(void *data, int, bNode *node, bNodeExecData *execdata, bNodeStack **in, bNodeStack **out)
void node_socket_get_color(bNodeTree *ntree, bNode *, bNodeSocket *sock, float *value)
float node_socket_get_float(bNodeTree *ntree, bNode *, bNodeSocket *sock)
void node_socket_get_vector(bNodeTree *ntree, bNode *, bNodeSocket *sock, float *value)
blender::bke::NodeFreeExecFunction free_exec_fn
bNodeTypeHandle * typeinfo
bNodeRuntimeHandle * runtime