Blender
V4.3
source
blender
nodes
intern
node_exec.hh
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2007 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
9
#pragma once
10
11
#include "
DNA_listBase.h
"
12
13
#include "
BLI_utildefines.h
"
14
15
#include "
BKE_node.hh
"
16
17
#include "
node_util.hh
"
18
19
#include "
RNA_types.hh
"
20
21
struct
bNode
;
22
struct
bNodeStack
;
23
struct
bNodeTree
;
24
25
/* Node execution data */
26
struct
bNodeExec
{
28
bNode
*
node
;
29
bNodeExecData
data
;
30
32
blender::bke::NodeFreeExecFunction
free_exec_fn
;
33
};
34
35
/* Execution Data for each instance of node tree execution */
36
struct
bNodeTreeExec
{
37
bNodeTree
*
nodetree
;
/* Back-pointer to node tree. */
38
39
int
totnodes
;
/* total node count */
40
bNodeExec
*
nodeexec
;
/* per-node execution data */
41
42
int
stacksize
;
43
bNodeStack
*
stack
;
/* socket data stack */
44
/* only used by material and texture trees to keep one stack for each thread */
45
ListBase
*
threadstack
;
/* one instance of the stack for each thread */
46
};
47
48
/* stores one stack copy for each thread (material and texture trees) */
49
struct
bNodeThreadStack
{
50
bNodeThreadStack
*
next
, *
prev
;
51
bNodeStack
*
stack
;
52
bool
used
;
53
};
54
56
bNodeStack
*
node_get_socket_stack
(
bNodeStack
*stack,
bNodeSocket
*sock);
57
void
node_get_stack
(
bNode
*node,
bNodeStack
*stack,
bNodeStack
**in,
bNodeStack
**out);
58
59
bNodeTreeExec
*
ntree_exec_begin
(
bNodeExecContext
*context,
60
bNodeTree
*ntree,
61
bNodeInstanceKey
parent_key);
62
void
ntree_exec_end
(
bNodeTreeExec
*
exec
);
BKE_node.hh
BLI_utildefines.h
DNA_listBase.h
These structs are the foundation for all linked lists in the library system.
RNA_types.hh
blender::bke::NodeFreeExecFunction
void(*)(void *nodedata) NodeFreeExecFunction
Definition
BKE_node.hh:205
ntree_exec_begin
bNodeTreeExec * ntree_exec_begin(bNodeExecContext *context, bNodeTree *ntree, bNodeInstanceKey parent_key)
Definition
node_exec.cc:139
node_get_stack
void node_get_stack(bNode *node, bNodeStack *stack, bNodeStack **in, bNodeStack **out)
Definition
node_exec.cc:37
node_get_socket_stack
bNodeStack * node_get_socket_stack(bNodeStack *stack, bNodeSocket *sock)
Definition
node_exec.cc:29
ntree_exec_end
void ntree_exec_end(bNodeTreeExec *exec)
Definition
node_exec.cc:237
exec
static void exec(void *data, int, bNode *node, bNodeExecData *execdata, bNodeStack **in, bNodeStack **out)
Definition
node_texture_at.cc:31
node_util.hh
ListBase
Definition
DNA_listBase.h:32
bNodeExecContext
Definition
node_util.hh:18
bNodeExecData
Definition
node_util.hh:22
bNodeExec
Definition
node_exec.hh:26
bNodeExec::data
bNodeExecData data
Definition
node_exec.hh:29
bNodeExec::node
bNode * node
Definition
node_exec.hh:28
bNodeExec::free_exec_fn
blender::bke::NodeFreeExecFunction free_exec_fn
Definition
node_exec.hh:32
bNodeInstanceKey
Definition
DNA_node_types.h:561
bNodeSocket
Definition
DNA_node_types.h:121
bNodeStack
Definition
DNA_node_types.h:86
bNodeThreadStack
Definition
node_exec.hh:49
bNodeThreadStack::prev
bNodeThreadStack * prev
Definition
node_exec.hh:50
bNodeThreadStack::stack
bNodeStack * stack
Definition
node_exec.hh:51
bNodeThreadStack::used
bool used
Definition
node_exec.hh:52
bNodeThreadStack::next
bNodeThreadStack * next
Definition
node_exec.hh:50
bNodeTreeExec
Definition
node_exec.hh:36
bNodeTreeExec::stack
bNodeStack * stack
Definition
node_exec.hh:43
bNodeTreeExec::nodetree
bNodeTree * nodetree
Definition
node_exec.hh:37
bNodeTreeExec::totnodes
int totnodes
Definition
node_exec.hh:39
bNodeTreeExec::stacksize
int stacksize
Definition
node_exec.hh:42
bNodeTreeExec::nodeexec
bNodeExec * nodeexec
Definition
node_exec.hh:40
bNodeTreeExec::threadstack
ListBase * threadstack
Definition
node_exec.hh:45
bNodeTree
Definition
DNA_node_types.h:675
bNode
Definition
DNA_node_types.h:357
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0