Blender
V4.3
source
blender
compositor
operations
COM_IDMaskOperation.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_IDMaskOperation.h
"
6
7
namespace
blender::compositor
{
8
9
IDMaskOperation::IDMaskOperation
()
10
{
11
this->
add_input_socket
(
DataType::Value
);
12
this->
add_output_socket
(
DataType::Value
);
13
flags_
.can_be_constant =
true
;
14
}
15
16
void
IDMaskOperation::update_memory_buffer_partial
(
MemoryBuffer
*
output
,
17
const
rcti
&area,
18
Span<MemoryBuffer *>
inputs
)
19
{
20
const
MemoryBuffer
*input =
inputs
[0];
21
const
int
width =
BLI_rcti_size_x
(&area);
22
for
(
int
y
= area.
ymin
;
y
< area.
ymax
;
y
++) {
23
float
*out =
output
->get_elem(area.
xmin
,
y
);
24
const
float
*in = input->
get_elem
(area.
xmin
,
y
);
25
const
float
*row_end = out + width *
output
->elem_stride;
26
while
(out < row_end) {
27
out[0] = (roundf(in[0]) == object_index_) ? 1.0f : 0.0f;
28
in += input->
elem_stride
;
29
out +=
output
->elem_stride;
30
}
31
}
32
}
33
34
}
// namespace blender::compositor
BLI_rcti_size_x
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
Definition
BLI_rect.h:189
COM_IDMaskOperation.h
output
#define output
blender::Span
Definition
BLI_span.hh:75
blender::compositor::IDMaskOperation::update_memory_buffer_partial
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_IDMaskOperation.cc:16
blender::compositor::IDMaskOperation::IDMaskOperation
IDMaskOperation()
Definition
COM_IDMaskOperation.cc:9
blender::compositor::MemoryBuffer
a MemoryBuffer contains access to the data
Definition
COM_MemoryBuffer.h:35
blender::compositor::MemoryBuffer::get_elem
float * get_elem(int x, int y)
Definition
COM_MemoryBuffer.h:161
blender::compositor::MemoryBuffer::elem_stride
int elem_stride
Definition
COM_MemoryBuffer.h:44
blender::compositor::NodeOperation::add_output_socket
void add_output_socket(DataType datatype)
Definition
COM_NodeOperation.cc:102
blender::compositor::NodeOperation::flags_
NodeOperationFlags flags_
Definition
COM_NodeOperation.h:295
blender::compositor::NodeOperation::add_input_socket
void add_input_socket(DataType datatype, ResizeMode resize_mode=ResizeMode::Center)
Definition
COM_NodeOperation.cc:97
y
y
Definition
compositor_morphological_blur_info.hh:15
blender::compositor::DataType::Value
@ Value
Value data type.
Definition
COM_defines.h:23
blender::compositor
Definition
COM_JumpFloodingAlgorithm.cc:20
inputs
static blender::bke::bNodeSocketTemplate inputs[]
Definition
node_texture_at.cc:11
rcti
Definition
DNA_vec_types.h:68
rcti::ymin
int ymin
Definition
DNA_vec_types.h:70
rcti::ymax
int ymax
Definition
DNA_vec_types.h:70
rcti::xmin
int xmin
Definition
DNA_vec_types.h:69
Generated on Sat Oct 4 2025 05:32:23 for Blender by
doxygen
1.14.0