Blender
V3.3
source
blender
compositor
operations
COM_GlareBaseOperation.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later
2
* Copyright 2011 Blender Foundation. */
3
4
#pragma once
5
6
#include "
COM_SingleThreadedOperation.h
"
7
#include "
DNA_node_types.h
"
8
9
namespace
blender::compositor
{
10
11
/* Utility functions used by glare, tone-map and lens distortion. */
12
/* Some macros for color handling. */
13
typedef
float
fRGB
[4];
14
15
/* TODO: replace with BLI_math_vector. */
16
/* multiply c2 by color rgb, rgb as separate arguments */
17
#define fRGB_rgbmult(c, r, g, b) \
18
{ \
19
c[0] *= (r); \
20
c[1] *= (g); \
21
c[2] *= (b); \
22
} \
23
(void)0
24
25
class
GlareBaseOperation
:
public
SingleThreadedOperation
{
26
private
:
30
SocketReader
*input_program_;
31
35
NodeGlare
*settings_;
36
37
bool
is_output_rendered_;
38
39
public
:
43
void
init_execution
()
override
;
44
48
void
deinit_execution
()
override
;
49
50
void
set_glare_settings
(
NodeGlare
*settings)
51
{
52
settings_ = settings;
53
}
54
bool
determine_depending_area_of_interest
(
rcti
*
input
,
55
ReadBufferOperation
*read_operation,
56
rcti
*
output
)
override
;
57
58
void
get_area_of_interest
(
int
input_idx,
const
rcti
&output_area,
rcti
&r_input_area)
final
;
59
60
void
update_memory_buffer
(
MemoryBuffer
*
output
,
61
const
rcti
&
area
,
62
Span<MemoryBuffer *>
inputs
)
final
;
63
64
protected
:
65
GlareBaseOperation
();
66
67
virtual
void
generate_glare
(
float
*
data
,
MemoryBuffer
*input_tile,
NodeGlare
*settings) = 0;
68
69
MemoryBuffer
*
create_memory_buffer
(
rcti
*rect)
override
;
70
};
71
72
}
// namespace blender::compositor
COM_SingleThreadedOperation.h
DNA_node_types.h
data
data
Definition:
bmesh_operator_api_inline.h:157
blender::Span
Definition:
BLI_span.hh:73
blender::compositor::GlareBaseOperation
Definition:
COM_GlareBaseOperation.h:25
blender::compositor::GlareBaseOperation::GlareBaseOperation
GlareBaseOperation()
Definition:
COM_GlareBaseOperation.cc:8
blender::compositor::GlareBaseOperation::deinit_execution
void deinit_execution() override
Definition:
COM_GlareBaseOperation.cc:22
blender::compositor::GlareBaseOperation::generate_glare
virtual void generate_glare(float *data, MemoryBuffer *input_tile, NodeGlare *settings)=0
blender::compositor::GlareBaseOperation::init_execution
void init_execution() override
Definition:
COM_GlareBaseOperation.cc:16
blender::compositor::GlareBaseOperation::determine_depending_area_of_interest
bool determine_depending_area_of_interest(rcti *input, ReadBufferOperation *read_operation, rcti *output) override
Definition:
COM_GlareBaseOperation.cc:42
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:58
blender::compositor::GlareBaseOperation::update_memory_buffer
void update_memory_buffer(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) final
Definition:
COM_GlareBaseOperation.cc:70
blender::compositor::GlareBaseOperation::create_memory_buffer
MemoryBuffer * create_memory_buffer(rcti *rect) override
Definition:
COM_GlareBaseOperation.cc:28
blender::compositor::GlareBaseOperation::set_glare_settings
void set_glare_settings(NodeGlare *settings)
Definition:
COM_GlareBaseOperation.h:50
blender::compositor::MemoryBuffer
a MemoryBuffer contains access to the data of a chunk
Definition:
COM_MemoryBuffer.h:43
blender::compositor::NodeOperation
NodeOperation contains calculation logic.
Definition:
COM_NodeOperation.h:303
blender::compositor::ReadBufferOperation
Definition:
COM_ReadBufferOperation.h:12
blender::compositor::SingleThreadedOperation
Definition:
COM_SingleThreadedOperation.h:10
output
ccl_global KernelShaderEvalInput ccl_global float * output
Definition:
kernel/device/gpu/kernel.h:751
input
ccl_global KernelShaderEvalInput * input
Definition:
kernel/device/gpu/kernel.h:750
blender::compositor
Definition:
COM_defines.h:10
blender::compositor::area
static void area(int d1, int d2, int e1, int e2, float weights[2])
Definition:
COM_SMAAOperation.cc:113
blender::compositor::fRGB
float fRGB[4]
Definition:
COM_GlareBaseOperation.h:13
inputs
static bNodeSocketTemplate inputs[]
Definition:
node_texture_at.c:11
NodeGlare
Definition:
DNA_node_types.h:850
rcti
Definition:
DNA_vec_types.h:62
Generated on Sat Jul 27 2024 14:57:55 for Blender by
doxygen
1.9.1