Blender
V4.3
source
blender
compositor
operations
COM_GlareBaseOperation.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_GlareBaseOperation.h
"
6
7
namespace
blender::compositor
{
8
9
GlareBaseOperation::GlareBaseOperation
()
10
{
11
this->
add_input_socket
(
DataType::Color
);
12
this->
add_output_socket
(
DataType::Color
);
13
settings_ =
nullptr
;
14
flags_
.can_be_constant =
true
;
15
is_output_rendered_ =
false
;
16
}
17
18
void
GlareBaseOperation::get_area_of_interest
(
const
int
input_idx,
19
const
rcti
&
/*output_area*/
,
20
rcti
&r_input_area)
21
{
22
BLI_assert
(input_idx == 0);
23
UNUSED_VARS_NDEBUG
(input_idx);
24
r_input_area.
xmin
= 0;
25
r_input_area.
xmax
= this->
get_width
();
26
r_input_area.
ymin
= 0;
27
r_input_area.
ymax
= this->
get_height
();
28
}
29
30
void
GlareBaseOperation::update_memory_buffer
(
MemoryBuffer
*
output
,
31
const
rcti
&
/*area*/
,
32
Span<MemoryBuffer *>
inputs
)
33
{
34
if
(!is_output_rendered_) {
35
MemoryBuffer
*input =
inputs
[0];
36
if
(input->
is_a_single_elem
()) {
37
copy_v4_v4
(
output
->get_elem(0, 0), input->
get_elem
(0, 0));
38
is_output_rendered_ =
true
;
39
return
;
40
}
41
42
this->
generate_glare
(output->
get_buffer
(), input, settings_);
43
is_output_rendered_ =
true
;
44
}
45
}
46
47
}
// namespace blender::compositor
BLI_assert
#define BLI_assert(a)
Definition
BLI_assert.h:50
copy_v4_v4
MINLINE void copy_v4_v4(float r[4], const float a[4])
Definition
math_vector_inline.c:57
UNUSED_VARS_NDEBUG
#define UNUSED_VARS_NDEBUG(...)
Definition
BLI_utildefines.h:537
COM_GlareBaseOperation.h
output
#define output
blender::Span
Definition
BLI_span.hh:75
blender::compositor::GlareBaseOperation::GlareBaseOperation
GlareBaseOperation()
Definition
COM_GlareBaseOperation.cc:9
blender::compositor::GlareBaseOperation::generate_glare
virtual void generate_glare(float *data, MemoryBuffer *input_tile, const NodeGlare *settings)=0
blender::compositor::GlareBaseOperation::get_area_of_interest
void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) final
Get input operation area being read by this operation on rendering given output area.
Definition
COM_GlareBaseOperation.cc:18
blender::compositor::GlareBaseOperation::update_memory_buffer
void update_memory_buffer(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) final
Definition
COM_GlareBaseOperation.cc:30
blender::compositor::MemoryBuffer
a MemoryBuffer contains access to the data
Definition
COM_MemoryBuffer.h:35
blender::compositor::MemoryBuffer::get_buffer
float * get_buffer()
get the data of this MemoryBuffer
Definition
COM_MemoryBuffer.h:367
blender::compositor::MemoryBuffer::is_a_single_elem
bool is_a_single_elem() const
Definition
COM_MemoryBuffer.h:131
blender::compositor::MemoryBuffer::get_elem
float * get_elem(int x, int y)
Definition
COM_MemoryBuffer.h:161
blender::compositor::NodeOperation::get_height
unsigned int get_height() const
Definition
COM_NodeOperation.h:465
blender::compositor::NodeOperation::add_output_socket
void add_output_socket(DataType datatype)
Definition
COM_NodeOperation.cc:102
blender::compositor::NodeOperation::get_width
unsigned int get_width() const
Definition
COM_NodeOperation.h:460
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
blender::compositor::DataType::Color
@ Color
Color data type.
Definition
COM_defines.h:27
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
rcti::xmax
int xmax
Definition
DNA_vec_types.h:69
Generated on Sat Oct 4 2025 05:32:23 for Blender by
doxygen
1.14.0