Files
test2/source/blender/nodes/intern/node_exec.hh
Iliya Katueshenock f7388e3be5 Cleanup: Move BKE_node.h to C++
See: https://projects.blender.org/blender/blender/issues/103343

Changes:
1. Added `BKE_node.hh` file. New file includes old one.
2. Functions moved to new file. Redundant `(void)`, `struct` are removed.
3. All cpp includes replaced from `.h` on `.hh`.
4. Everything in `BKE_node.hh` is on `blender::bke` namespace.
5. All implementation functions moved in namespace.
6. Function names (`BKE_node_*`) changed to `blender::bke::node_*`.
7. `eNodeSizePreset` now is a class, with renamed items.

Pull Request: https://projects.blender.org/blender/blender/pulls/107790
2023-05-15 15:14:22 +02:00

62 lines
1.6 KiB
C++

/* SPDX-License-Identifier: GPL-2.0-or-later
* Copyright 2007 Blender Foundation */
/** \file
* \ingroup nodes
*/
#pragma once
#include "DNA_listBase.h"
#include "BLI_utildefines.h"
#include "BKE_node.hh"
#include "node_util.hh"
#include "RNA_types.h"
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. */
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(struct bNodeStack *stack, struct 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);