Blender
V3.3
source
blender
nodes
intern
node_exec.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later
2
* Copyright 2007 Blender Foundation. All rights reserved. */
3
8
#pragma once
9
10
#include "
DNA_listBase.h
"
11
12
#include "
BLI_utildefines.h
"
13
14
#include "
BKE_node.h
"
15
16
#include "
node_util.h
"
17
18
#include "
RNA_types.h
"
19
20
#ifdef __cplusplus
21
extern
"C"
{
22
#endif
23
24
struct
bNode
;
25
struct
bNodeStack
;
26
struct
bNodeTree
;
27
28
/* Node execution data */
29
typedef
struct
bNodeExec
{
31
struct
bNode
*
node
;
32
bNodeExecData
data
;
33
35
NodeFreeExecFunction
free_exec_fn
;
36
}
bNodeExec
;
37
38
/* Execution Data for each instance of node tree execution */
39
typedef
struct
bNodeTreeExec
{
40
struct
bNodeTree
*
nodetree
;
/* backpointer to node tree */
41
42
int
totnodes
;
/* total node count */
43
struct
bNodeExec
*
nodeexec
;
/* per-node execution data */
44
45
int
stacksize
;
46
struct
bNodeStack
*
stack
;
/* socket data stack */
47
/* only used by material and texture trees to keep one stack for each thread */
48
ListBase
*
threadstack
;
/* one instance of the stack for each thread */
49
}
bNodeTreeExec
;
50
51
/* stores one stack copy for each thread (material and texture trees) */
52
typedef
struct
bNodeThreadStack
{
53
struct
bNodeThreadStack
*
next
, *
prev
;
54
struct
bNodeStack
*
stack
;
55
bool
used
;
56
}
bNodeThreadStack
;
57
59
struct
bNodeStack
*
node_get_socket_stack
(
struct
bNodeStack
*stack,
struct
bNodeSocket
*sock);
60
void
node_get_stack
(
struct
bNode
*
node
,
61
struct
bNodeStack
*stack,
62
struct
bNodeStack
**in,
63
struct
bNodeStack
**
out
);
64
65
struct
bNodeTreeExec
*
ntree_exec_begin
(
struct
bNodeExecContext
*
context
,
66
struct
bNodeTree
*
ntree
,
67
bNodeInstanceKey
parent_key);
68
void
ntree_exec_end
(
struct
bNodeTreeExec
*
exec
);
69
70
#ifdef __cplusplus
71
}
72
#endif
BKE_node.h
NodeFreeExecFunction
void(* NodeFreeExecFunction)(void *nodedata)
Definition:
BKE_node.h:207
BLI_utildefines.h
DNA_listBase.h
These structs are the foundation for all linked lists in the library system.
RNA_types.h
node
OperationNode * node
Definition:
deg_builder_cycle.cc:38
ntree
bNodeTree * ntree
Definition:
eevee_shaders.c:155
node_util.h
blender::compositor::context
cl_context context
Definition:
COM_WorkScheduler.cc:73
usdtokens::out
static const pxr::TfToken out("out", pxr::TfToken::Immortal)
node_get_stack
void node_get_stack(struct bNode *node, struct bNodeStack *stack, struct bNodeStack **in, struct bNodeStack **out)
Definition:
node_exec.cc:36
node_get_socket_stack
struct bNodeStack * node_get_socket_stack(struct bNodeStack *stack, struct bNodeSocket *sock)
Definition:
node_exec.cc:28
bNodeThreadStack
struct bNodeThreadStack bNodeThreadStack
bNodeExec
struct bNodeExec bNodeExec
ntree_exec_begin
struct bNodeTreeExec * ntree_exec_begin(struct bNodeExecContext *context, struct bNodeTree *ntree, bNodeInstanceKey parent_key)
Definition:
node_exec.cc:139
bNodeTreeExec
struct bNodeTreeExec bNodeTreeExec
ntree_exec_end
void ntree_exec_end(struct bNodeTreeExec *exec)
Definition:
node_exec.cc:242
exec
static void exec(void *data, int UNUSED(thread), bNode *node, bNodeExecData *execdata, bNodeStack **in, bNodeStack **out)
Definition:
node_texture_at.c:31
ListBase
Definition:
DNA_listBase.h:30
bNodeExecContext
Definition:
source/blender/nodes/intern/node_util.h:18
bNodeExecData
Definition:
source/blender/nodes/intern/node_util.h:22
bNodeExec
Definition:
node_exec.h:29
bNodeExec::data
bNodeExecData data
Definition:
node_exec.h:32
bNodeExec::free_exec_fn
NodeFreeExecFunction free_exec_fn
Definition:
node_exec.h:35
bNodeExec::node
struct bNode * node
Definition:
node_exec.h:31
bNodeInstanceKey
Definition:
DNA_node_types.h:390
bNodeSocket
Definition:
DNA_node_types.h:92
bNodeStack
Definition:
DNA_node_types.h:37
bNodeThreadStack
Definition:
node_exec.h:52
bNodeThreadStack::prev
struct bNodeThreadStack * prev
Definition:
node_exec.h:53
bNodeThreadStack::next
struct bNodeThreadStack * next
Definition:
node_exec.h:53
bNodeThreadStack::used
bool used
Definition:
node_exec.h:55
bNodeThreadStack::stack
struct bNodeStack * stack
Definition:
node_exec.h:54
bNodeTreeExec
Definition:
node_exec.h:39
bNodeTreeExec::totnodes
int totnodes
Definition:
node_exec.h:42
bNodeTreeExec::stacksize
int stacksize
Definition:
node_exec.h:45
bNodeTreeExec::nodeexec
struct bNodeExec * nodeexec
Definition:
node_exec.h:43
bNodeTreeExec::stack
struct bNodeStack * stack
Definition:
node_exec.h:46
bNodeTreeExec::nodetree
struct bNodeTree * nodetree
Definition:
node_exec.h:40
bNodeTreeExec::threadstack
ListBase * threadstack
Definition:
node_exec.h:48
bNodeTree
Definition:
DNA_node_types.h:451
bNode
Definition:
DNA_node_types.h:252
Generated on Sat Jul 27 2024 14:57:55 for Blender by
doxygen
1.9.1