Files
test/source/blender/nodes/intern/node_exec.hh
Iliya Katueshenock 75d17b1db5 Cleanup: Move BKE_node to namespace
Move all header file into namespace.
Unnecessary namespaces was removed from implementations file.
Part of forward declarations in header was moved in the top part
of file just to do not have a lot of separate namespaces.

Pull Request: https://projects.blender.org/blender/blender/pulls/121637
2024-05-13 16:07:12 +02:00

63 lines
1.6 KiB
C++

/* SPDX-FileCopyrightText: 2007 Blender Authors
*
* SPDX-License-Identifier: GPL-2.0-or-later */
/** \file
* \ingroup nodes
*/
#pragma once
#include "DNA_listBase.h"
#include "BLI_utildefines.h"
#include "BKE_node.hh"
#include "node_util.hh"
#include "RNA_types.hh"
struct bNode;
struct bNodeStack;
struct bNodeTree;
/* Node execution data */
struct bNodeExec {
/** Back-pointer to node. */
bNode *node;
bNodeExecData data;
/** Free function, stored in exec itself to avoid dangling node pointer access. */
blender::bke::NodeFreeExecFunction free_exec_fn;
};
/* Execution Data for each instance of node tree execution */
struct bNodeTreeExec {
bNodeTree *nodetree; /* Back-pointer to node tree. */
int totnodes; /* total node count */
bNodeExec *nodeexec; /* per-node execution data */
int stacksize;
bNodeStack *stack; /* socket data stack */
/* only used by material and texture trees to keep one stack for each thread */
ListBase *threadstack; /* one instance of the stack for each thread */
};
/* stores one stack copy for each thread (material and texture trees) */
struct bNodeThreadStack {
bNodeThreadStack *next, *prev;
bNodeStack *stack;
bool used;
};
/** For a given socket, find the actual stack entry. */
bNodeStack *node_get_socket_stack(bNodeStack *stack, bNodeSocket *sock);
void node_get_stack(bNode *node, bNodeStack *stack, bNodeStack **in, bNodeStack **out);
bNodeTreeExec *ntree_exec_begin(bNodeExecContext *context,
bNodeTree *ntree,
bNodeInstanceKey parent_key);
void ntree_exec_end(bNodeTreeExec *exec);