Blender
V4.3
source
blender
compositor
nodes
COM_MixNode.cc
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2011 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#include "
COM_MixNode.h
"
6
7
#include "
COM_MixOperation.h
"
8
9
#include "
DNA_material_types.h
"
/* the ramp types */
10
11
namespace
blender::compositor
{
12
13
MixNode::MixNode
(
bNode
*editor_node) :
Node
(editor_node)
14
{
15
/* pass */
16
}
17
18
void
MixNode::convert_to_operations
(
NodeConverter
&converter,
19
const
CompositorContext
&
/*context*/
)
const
20
{
21
NodeInput
*value_socket = this->
get_input_socket
(0);
22
NodeInput
*color1Socket = this->
get_input_socket
(1);
23
NodeInput
*color2Socket = this->
get_input_socket
(2);
24
NodeOutput
*output_socket = this->
get_output_socket
(0);
25
const
bNode
*editor_node = this->
get_bnode
();
26
bool
use_alpha_premultiply = (this->
get_bnode
()->
custom2
& 1) != 0;
27
bool
use_clamp = (this->
get_bnode
()->
custom2
& 2) != 0;
28
29
MixBaseOperation
*convert_prog;
30
switch
(editor_node->
custom1
) {
31
case
MA_RAMP_ADD
:
32
convert_prog =
new
MixAddOperation
();
33
break
;
34
case
MA_RAMP_MULT
:
35
convert_prog =
new
MixMultiplyOperation
();
36
break
;
37
case
MA_RAMP_LIGHT
:
38
convert_prog =
new
MixLightenOperation
();
39
break
;
40
case
MA_RAMP_BURN
:
41
convert_prog =
new
MixColorBurnOperation
();
42
break
;
43
case
MA_RAMP_HUE
:
44
convert_prog =
new
MixHueOperation
();
45
break
;
46
case
MA_RAMP_COLOR
:
47
convert_prog =
new
MixColorOperation
();
48
break
;
49
case
MA_RAMP_SOFT
:
50
convert_prog =
new
MixSoftLightOperation
();
51
break
;
52
case
MA_RAMP_SCREEN
:
53
convert_prog =
new
MixScreenOperation
();
54
break
;
55
case
MA_RAMP_LINEAR
:
56
convert_prog =
new
MixLinearLightOperation
();
57
break
;
58
case
MA_RAMP_DIFF
:
59
convert_prog =
new
MixDifferenceOperation
();
60
break
;
61
case
MA_RAMP_EXCLUSION
:
62
convert_prog =
new
MixExclusionOperation
();
63
break
;
64
case
MA_RAMP_SAT
:
65
convert_prog =
new
MixSaturationOperation
();
66
break
;
67
case
MA_RAMP_DIV
:
68
convert_prog =
new
MixDivideOperation
();
69
break
;
70
case
MA_RAMP_SUB
:
71
convert_prog =
new
MixSubtractOperation
();
72
break
;
73
case
MA_RAMP_DARK
:
74
convert_prog =
new
MixDarkenOperation
();
75
break
;
76
case
MA_RAMP_OVERLAY
:
77
convert_prog =
new
MixOverlayOperation
();
78
break
;
79
case
MA_RAMP_VAL
:
80
convert_prog =
new
MixValueOperation
();
81
break
;
82
case
MA_RAMP_DODGE
:
83
convert_prog =
new
MixDodgeOperation
();
84
break
;
85
86
case
MA_RAMP_BLEND
:
87
default
:
88
convert_prog =
new
MixBlendOperation
();
89
break
;
90
}
91
convert_prog->
set_use_value_alpha_multiply
(use_alpha_premultiply);
92
convert_prog->
set_use_clamp
(use_clamp);
93
converter.
add_operation
(convert_prog);
94
95
converter.
map_input_socket
(value_socket, convert_prog->
get_input_socket
(0));
96
converter.
map_input_socket
(color1Socket, convert_prog->
get_input_socket
(1));
97
converter.
map_input_socket
(color2Socket, convert_prog->
get_input_socket
(2));
98
converter.
map_output_socket
(output_socket, convert_prog->
get_output_socket
(0));
99
100
converter.
add_preview
(convert_prog->
get_output_socket
(0));
101
}
102
103
}
// namespace blender::compositor
COM_MixNode.h
COM_MixOperation.h
DNA_material_types.h
MA_RAMP_LIGHT
@ MA_RAMP_LIGHT
Definition
DNA_material_types.h:280
MA_RAMP_COLOR
@ MA_RAMP_COLOR
Definition
DNA_material_types.h:287
MA_RAMP_SAT
@ MA_RAMP_SAT
Definition
DNA_material_types.h:285
MA_RAMP_HUE
@ MA_RAMP_HUE
Definition
DNA_material_types.h:284
MA_RAMP_LINEAR
@ MA_RAMP_LINEAR
Definition
DNA_material_types.h:289
MA_RAMP_DIV
@ MA_RAMP_DIV
Definition
DNA_material_types.h:277
MA_RAMP_EXCLUSION
@ MA_RAMP_EXCLUSION
Definition
DNA_material_types.h:290
MA_RAMP_ADD
@ MA_RAMP_ADD
Definition
DNA_material_types.h:273
MA_RAMP_DODGE
@ MA_RAMP_DODGE
Definition
DNA_material_types.h:282
MA_RAMP_SUB
@ MA_RAMP_SUB
Definition
DNA_material_types.h:275
MA_RAMP_SCREEN
@ MA_RAMP_SCREEN
Definition
DNA_material_types.h:276
MA_RAMP_SOFT
@ MA_RAMP_SOFT
Definition
DNA_material_types.h:288
MA_RAMP_DARK
@ MA_RAMP_DARK
Definition
DNA_material_types.h:279
MA_RAMP_BURN
@ MA_RAMP_BURN
Definition
DNA_material_types.h:283
MA_RAMP_BLEND
@ MA_RAMP_BLEND
Definition
DNA_material_types.h:272
MA_RAMP_VAL
@ MA_RAMP_VAL
Definition
DNA_material_types.h:286
MA_RAMP_OVERLAY
@ MA_RAMP_OVERLAY
Definition
DNA_material_types.h:281
MA_RAMP_MULT
@ MA_RAMP_MULT
Definition
DNA_material_types.h:274
MA_RAMP_DIFF
@ MA_RAMP_DIFF
Definition
DNA_material_types.h:278
blender::compositor::CompositorContext
Overall context of the compositor.
Definition
COM_CompositorContext.h:27
blender::compositor::MixAddOperation
Definition
COM_MixOperation.h:74
blender::compositor::MixBaseOperation
Definition
COM_MixOperation.h:15
blender::compositor::MixBaseOperation::set_use_clamp
void set_use_clamp(bool value)
Definition
COM_MixOperation.h:61
blender::compositor::MixBaseOperation::set_use_value_alpha_multiply
void set_use_value_alpha_multiply(const bool value)
Definition
COM_MixOperation.h:53
blender::compositor::MixBlendOperation
Definition
COM_MixOperation.h:79
blender::compositor::MixColorBurnOperation
Definition
COM_MixOperation.h:84
blender::compositor::MixColorOperation
Definition
COM_MixOperation.h:89
blender::compositor::MixDarkenOperation
Definition
COM_MixOperation.h:94
blender::compositor::MixDifferenceOperation
Definition
COM_MixOperation.h:99
blender::compositor::MixDivideOperation
Definition
COM_MixOperation.h:109
blender::compositor::MixDodgeOperation
Definition
COM_MixOperation.h:114
blender::compositor::MixExclusionOperation
Definition
COM_MixOperation.h:104
blender::compositor::MixHueOperation
Definition
COM_MixOperation.h:124
blender::compositor::MixLightenOperation
Definition
COM_MixOperation.h:129
blender::compositor::MixLinearLightOperation
Definition
COM_MixOperation.h:134
blender::compositor::MixMultiplyOperation
Definition
COM_MixOperation.h:139
blender::compositor::MixNode::convert_to_operations
void convert_to_operations(NodeConverter &converter, const CompositorContext &context) const override
convert node to operation
Definition
COM_MixNode.cc:18
blender::compositor::MixNode::MixNode
MixNode(bNode *editor_node)
Definition
COM_MixNode.cc:13
blender::compositor::MixOverlayOperation
Definition
COM_MixOperation.h:144
blender::compositor::MixSaturationOperation
Definition
COM_MixOperation.h:149
blender::compositor::MixScreenOperation
Definition
COM_MixOperation.h:154
blender::compositor::MixSoftLightOperation
Definition
COM_MixOperation.h:159
blender::compositor::MixSubtractOperation
Definition
COM_MixOperation.h:164
blender::compositor::MixValueOperation
Definition
COM_MixOperation.h:169
blender::compositor::NodeConverter
Definition
COM_NodeConverter.h:29
blender::compositor::NodeConverter::map_output_socket
void map_output_socket(NodeOutput *node_socket, NodeOperationOutput *operation_socket)
Definition
COM_NodeConverter.cc:30
blender::compositor::NodeConverter::add_preview
void add_preview(NodeOperationOutput *output)
Definition
COM_NodeConverter.cc:41
blender::compositor::NodeConverter::add_operation
void add_operation(NodeOperation *operation)
Definition
COM_NodeConverter.cc:20
blender::compositor::NodeConverter::map_input_socket
void map_input_socket(NodeInput *node_socket, NodeOperationInput *operation_socket)
Definition
COM_NodeConverter.cc:25
blender::compositor::NodeInput
NodeInput are sockets that can receive data/input.
Definition
COM_Node.h:191
blender::compositor::NodeOperation::get_output_socket
NodeOperationOutput * get_output_socket(unsigned int index=0)
Definition
COM_NodeOperation.cc:87
blender::compositor::NodeOperation::get_input_socket
NodeOperationInput * get_input_socket(unsigned int index)
Definition
COM_NodeOperation.cc:92
blender::compositor::NodeOutput
NodeOutput are sockets that can send data/input.
Definition
COM_Node.h:239
blender::compositor::Node
Definition
COM_Node.h:25
blender::compositor::Node::get_output_socket
NodeOutput * get_output_socket(unsigned int index=0) const
Definition
COM_Node.cc:85
blender::compositor::Node::get_input_socket
NodeInput * get_input_socket(unsigned int index) const
Definition
COM_Node.cc:90
blender::compositor::Node::get_bnode
const bNode * get_bnode() const
get the reference to the SDNA bNode struct
Definition
COM_Node.h:65
blender::compositor
Definition
COM_JumpFloodingAlgorithm.cc:20
bNode
Definition
DNA_node_types.h:357
bNode::custom1
int16_t custom1
Definition
DNA_node_types.h:400
bNode::custom2
int16_t custom2
Definition
DNA_node_types.h:400
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0