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
63 lines
1.6 KiB
C++
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);
|