Blender
V5.0
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
8
9
#pragma once
10
11
#include "
DNA_listBase.h
"
12
13
#include "
BKE_node.hh
"
14
15
#include "
node_util.hh
"
16
17
struct
bNode
;
18
struct
bNodeStack
;
19
struct
bNodeTree
;
20
21
/* Node execution data */
22
struct
bNodeExec
{
24
bNode
*
node
;
25
bNodeExecData
data
;
26
28
blender::bke::NodeFreeExecFunction
free_exec_fn
;
29
};
30
31
/* Execution Data for each instance of node tree execution */
32
struct
bNodeTreeExec
{
33
bNodeTree
*
nodetree
;
/* Back-pointer to node tree. */
34
35
int
totnodes
;
/* total node count */
36
bNodeExec
*
nodeexec
;
/* per-node execution data */
37
38
int
stacksize
;
39
bNodeStack
*
stack
;
/* socket data stack */
40
/* only used by material and texture trees to keep one stack for each thread */
41
ListBase
*
threadstack
;
/* one instance of the stack for each thread */
42
};
43
44
/* stores one stack copy for each thread (material and texture trees) */
45
struct
bNodeThreadStack
{
46
bNodeThreadStack
*
next
, *
prev
;
47
bNodeStack
*
stack
;
48
bool
used
;
49
};
50
52
bNodeStack
*
node_get_socket_stack
(
bNodeStack
*stack,
bNodeSocket
*sock);
53
void
node_get_stack
(
bNode
*node,
bNodeStack
*stack,
bNodeStack
**
in
,
bNodeStack
**
out
);
54
55
bNodeTreeExec
*
ntree_exec_begin
(
bNodeExecContext
*context,
56
bNodeTree
*ntree,
57
bNodeInstanceKey
parent_key);
58
void
ntree_exec_end
(
bNodeTreeExec
*
exec
);
BKE_node.hh
DNA_listBase.h
These structs are the foundation for all linked lists in the library system.
in
#define in
Definition
gpu_shader_compat_cxx.hh:50
out
#define out
Definition
gpu_shader_compat_cxx.hh:48
blender::bke::NodeFreeExecFunction
void(*)(void *nodedata) NodeFreeExecFunction
Definition
BKE_node.hh:217
ntree_exec_begin
bNodeTreeExec * ntree_exec_begin(bNodeExecContext *context, bNodeTree *ntree, bNodeInstanceKey parent_key)
Definition
node_exec.cc:183
node_get_stack
void node_get_stack(bNode *node, bNodeStack *stack, bNodeStack **in, bNodeStack **out)
Definition
node_exec.cc:38
node_get_socket_stack
bNodeStack * node_get_socket_stack(bNodeStack *stack, bNodeSocket *sock)
Definition
node_exec.cc:30
ntree_exec_end
void ntree_exec_end(bNodeTreeExec *exec)
Definition
node_exec.cc:277
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:20
bNodeExecData
Definition
node_util.hh:22
bNodeExec
Definition
node_exec.hh:22
bNodeExec::data
bNodeExecData data
Definition
node_exec.hh:25
bNodeExec::node
bNode * node
Definition
node_exec.hh:24
bNodeExec::free_exec_fn
blender::bke::NodeFreeExecFunction free_exec_fn
Definition
node_exec.hh:28
bNodeInstanceKey
Definition
DNA_node_types.h:654
bNodeSocket
Definition
DNA_node_types.h:121
bNodeStack
Definition
DNA_node_types.h:86
bNodeThreadStack
Definition
node_exec.hh:45
bNodeThreadStack::prev
bNodeThreadStack * prev
Definition
node_exec.hh:46
bNodeThreadStack::stack
bNodeStack * stack
Definition
node_exec.hh:47
bNodeThreadStack::used
bool used
Definition
node_exec.hh:48
bNodeThreadStack::next
bNodeThreadStack * next
Definition
node_exec.hh:46
bNodeTreeExec
Definition
node_exec.hh:32
bNodeTreeExec::stack
bNodeStack * stack
Definition
node_exec.hh:39
bNodeTreeExec::nodetree
bNodeTree * nodetree
Definition
node_exec.hh:33
bNodeTreeExec::totnodes
int totnodes
Definition
node_exec.hh:35
bNodeTreeExec::stacksize
int stacksize
Definition
node_exec.hh:38
bNodeTreeExec::nodeexec
bNodeExec * nodeexec
Definition
node_exec.hh:36
bNodeTreeExec::threadstack
ListBase * threadstack
Definition
node_exec.hh:41
bNodeTree
Definition
DNA_node_types.h:759
bNode
Definition
DNA_node_types.h:422
Generated on
for Blender by
doxygen
1.16.1