Blender
V4.3
source
blender
nodes
composite
nodes
node_composite_sepcomb_xyz.cc
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2021 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9
#include "
GPU_material.hh
"
10
11
#include "
COM_shader_node.hh
"
12
13
#include "
node_composite_util.hh
"
14
15
/* **************** SEPARATE XYZ ******************** */
16
17
namespace
blender::nodes::node_composite_separate_xyz_cc
{
18
19
static
void
cmp_node_separate_xyz_declare
(
NodeDeclarationBuilder
&
b
)
20
{
21
b
.add_input<
decl::Vector
>(
"Vector"
).
min
(-10000.0f).max(10000.0f);
22
b
.add_output<
decl::Float
>(
"X"
);
23
b
.add_output<
decl::Float
>(
"Y"
);
24
b
.add_output<
decl::Float
>(
"Z"
);
25
}
26
27
using namespace
blender::realtime_compositor
;
28
29
class
SeparateXYZShaderNode
:
public
ShaderNode
{
30
public
:
31
using
ShaderNode::ShaderNode
;
32
33
void
compile
(
GPUMaterial
*material)
override
34
{
35
GPUNodeStack
*
inputs
=
get_inputs_array
();
36
GPUNodeStack
*
outputs
=
get_outputs_array
();
37
38
GPU_stack_link
(material, &
bnode
(),
"node_composite_separate_xyz"
,
inputs
,
outputs
);
39
}
40
};
41
42
static
ShaderNode
*
get_compositor_shader_node
(
DNode
node)
43
{
44
return
new
SeparateXYZShaderNode
(node);
45
}
46
47
}
// namespace blender::nodes::node_composite_separate_xyz_cc
48
49
void
register_node_type_cmp_separate_xyz
()
50
{
51
namespace
file_ns =
blender::nodes::node_composite_separate_xyz_cc
;
52
53
static
blender::bke::bNodeType
ntype;
54
55
cmp_node_type_base
(&ntype,
CMP_NODE_SEPARATE_XYZ
,
"Separate XYZ"
,
NODE_CLASS_CONVERTER
);
56
ntype.
declare
= file_ns::cmp_node_separate_xyz_declare;
57
ntype.
get_compositor_shader_node
= file_ns::get_compositor_shader_node;
58
59
blender::bke::node_register_type
(&ntype);
60
}
61
62
/* **************** COMBINE XYZ ******************** */
63
64
namespace
blender::nodes::node_composite_combine_xyz_cc
{
65
66
static
void
cmp_node_combine_xyz_declare
(
NodeDeclarationBuilder
&
b
)
67
{
68
b
.add_input<
decl::Float
>(
"X"
).
min
(-10000.0f).max(10000.0f);
69
b
.add_input<
decl::Float
>(
"Y"
).
min
(-10000.0f).max(10000.0f);
70
b
.add_input<
decl::Float
>(
"Z"
).
min
(-10000.0f).max(10000.0f);
71
b
.add_output<
decl::Vector
>(
"Vector"
);
72
}
73
74
using namespace
blender::realtime_compositor
;
75
76
class
CombineXYZShaderNode
:
public
ShaderNode
{
77
public
:
78
using
ShaderNode::ShaderNode
;
79
80
void
compile
(
GPUMaterial
*material)
override
81
{
82
GPUNodeStack
*
inputs
=
get_inputs_array
();
83
GPUNodeStack
*
outputs
=
get_outputs_array
();
84
85
GPU_stack_link
(material, &
bnode
(),
"node_composite_combine_xyz"
,
inputs
,
outputs
);
86
}
87
};
88
89
static
ShaderNode
*
get_compositor_shader_node
(
DNode
node)
90
{
91
return
new
CombineXYZShaderNode
(node);
92
}
93
94
}
// namespace blender::nodes::node_composite_combine_xyz_cc
95
96
void
register_node_type_cmp_combine_xyz
()
97
{
98
namespace
file_ns =
blender::nodes::node_composite_combine_xyz_cc
;
99
100
static
blender::bke::bNodeType
ntype;
101
102
cmp_node_type_base
(&ntype,
CMP_NODE_COMBINE_XYZ
,
"Combine XYZ"
,
NODE_CLASS_CONVERTER
);
103
ntype.
declare
= file_ns::cmp_node_combine_xyz_declare;
104
ntype.
get_compositor_shader_node
= file_ns::get_compositor_shader_node;
105
106
blender::bke::node_register_type
(&ntype);
107
}
CMP_NODE_COMBINE_XYZ
#define CMP_NODE_COMBINE_XYZ
Definition
BKE_node.hh:1116
NODE_CLASS_CONVERTER
#define NODE_CLASS_CONVERTER
Definition
BKE_node.hh:410
CMP_NODE_SEPARATE_XYZ
#define CMP_NODE_SEPARATE_XYZ
Definition
BKE_node.hh:1115
COM_shader_node.hh
GPU_material.hh
GPU_stack_link
bool GPU_stack_link(GPUMaterial *mat, const bNode *node, const char *name, GPUNodeStack *in, GPUNodeStack *out,...)
Definition
gpu_node_graph.cc:821
blender::nodes::DNode
Definition
NOD_derived_node_tree.hh:71
blender::nodes::NodeDeclarationBuilder
Definition
NOD_node_declaration.hh:525
blender::nodes::decl::Float
Definition
NOD_socket_declarations.hh:19
blender::nodes::decl::Vector
Definition
NOD_socket_declarations.hh:77
blender::nodes::node_composite_combine_xyz_cc::CombineXYZShaderNode
Definition
node_composite_sepcomb_xyz.cc:76
blender::nodes::node_composite_combine_xyz_cc::CombineXYZShaderNode::ShaderNode
ShaderNode(DNode node)
Definition
shader_node.cc:22
blender::nodes::node_composite_combine_xyz_cc::CombineXYZShaderNode::compile
void compile(GPUMaterial *material) override
Definition
node_composite_sepcomb_xyz.cc:80
blender::nodes::node_composite_separate_xyz_cc::SeparateXYZShaderNode
Definition
node_composite_sepcomb_xyz.cc:29
blender::nodes::node_composite_separate_xyz_cc::SeparateXYZShaderNode::ShaderNode
ShaderNode(DNode node)
Definition
shader_node.cc:22
blender::nodes::node_composite_separate_xyz_cc::SeparateXYZShaderNode::compile
void compile(GPUMaterial *material) override
Definition
node_composite_sepcomb_xyz.cc:33
blender::realtime_compositor::ShaderNode
Definition
COM_shader_node.hh:31
blender::realtime_compositor::ShaderNode::get_inputs_array
GPUNodeStack * get_inputs_array()
Definition
shader_node.cc:28
blender::realtime_compositor::ShaderNode::get_outputs_array
GPUNodeStack * get_outputs_array()
Definition
shader_node.cc:33
blender::realtime_compositor::ShaderNode::ShaderNode
ShaderNode(DNode node)
Definition
shader_node.cc:22
blender::realtime_compositor::ShaderNode::bnode
const bNode & bnode() const
Definition
shader_node.cc:62
b
local_group_size(16, 16) .push_constant(Type b
Definition
compositor_morphological_distance_info.hh:16
blender::bke::node_register_type
void node_register_type(bNodeType *ntype)
Definition
node.cc:1708
blender::nodes::node_composite_combine_xyz_cc
Definition
node_composite_sepcomb_xyz.cc:64
blender::nodes::node_composite_combine_xyz_cc::get_compositor_shader_node
static ShaderNode * get_compositor_shader_node(DNode node)
Definition
node_composite_sepcomb_xyz.cc:89
blender::nodes::node_composite_combine_xyz_cc::cmp_node_combine_xyz_declare
static void cmp_node_combine_xyz_declare(NodeDeclarationBuilder &b)
Definition
node_composite_sepcomb_xyz.cc:66
blender::nodes::node_composite_separate_xyz_cc
Definition
node_composite_sepcomb_xyz.cc:17
blender::nodes::node_composite_separate_xyz_cc::cmp_node_separate_xyz_declare
static void cmp_node_separate_xyz_declare(NodeDeclarationBuilder &b)
Definition
node_composite_sepcomb_xyz.cc:19
blender::nodes::node_composite_separate_xyz_cc::get_compositor_shader_node
static ShaderNode * get_compositor_shader_node(DNode node)
Definition
node_composite_sepcomb_xyz.cc:42
blender::realtime_compositor
Definition
BKE_node.hh:80
register_node_type_cmp_separate_xyz
void register_node_type_cmp_separate_xyz()
Definition
node_composite_sepcomb_xyz.cc:49
register_node_type_cmp_combine_xyz
void register_node_type_cmp_combine_xyz()
Definition
node_composite_sepcomb_xyz.cc:96
cmp_node_type_base
void cmp_node_type_base(blender::bke::bNodeType *ntype, int type, const char *name, short nclass)
Definition
node_composite_util.cc:31
node_composite_util.hh
outputs
static blender::bke::bNodeSocketTemplate outputs[]
Definition
node_texture_at.cc:16
inputs
static blender::bke::bNodeSocketTemplate inputs[]
Definition
node_texture_at.cc:11
min
#define min(a, b)
Definition
sort.c:32
GPUMaterial
Definition
gpu_material.cc:71
GPUNodeStack
Definition
GPU_material.hh:96
blender::bke::bNodeType
Defines a node type.
Definition
BKE_node.hh:218
blender::bke::bNodeType::declare
NodeDeclareFunction declare
Definition
BKE_node.hh:347
blender::bke::bNodeType::get_compositor_shader_node
NodeGetCompositorShaderNodeFunction get_compositor_shader_node
Definition
BKE_node.hh:328
Generated on Sat Oct 4 2025 05:32:23 for Blender by
doxygen
1.14.0