Blender
V4.3
source
blender
compositor
operations
COM_MaskOperation.h
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2012 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#pragma once
6
7
#include "
BLI_listbase.h
"
8
#include "
COM_MultiThreadedOperation.h
"
9
#include "
DNA_mask_types.h
"
10
#include "
IMB_imbuf_types.hh
"
11
12
/* Forward declarations. */
13
struct
MaskRasterHandle
;
14
15
namespace
blender::compositor
{
16
20
class
MaskOperation
:
public
MultiThreadedOperation
{
21
protected
:
22
Mask
*
mask_
;
23
24
/* NOTE: these are used more like aspect,
25
* but they _do_ impact on mask detail */
26
int
mask_width_
;
27
int
mask_height_
;
28
float
mask_width_inv_
;
/* `1 / mask_width_` */
29
float
mask_height_inv_
;
/* `1 / mask_height_` */
30
float
mask_px_ofs_
[2];
31
32
float
frame_shutter_
;
33
int
frame_number_
;
34
35
bool
do_feather_
;
36
37
struct
MaskRasterHandle
*
raster_mask_handles_
[
CMP_NODE_MASK_MBLUR_SAMPLES_MAX
];
38
unsigned
int
raster_mask_handle_tot_
;
39
43
void
determine_canvas
(
const
rcti
&preferred_area,
rcti
&r_area)
override
;
44
45
public
:
46
MaskOperation
();
47
48
void
init_execution
()
override
;
49
void
deinit_execution
()
override
;
50
51
void
set_mask
(
Mask
*
mask
)
52
{
53
mask_
=
mask
;
54
}
55
void
set_mask_width
(
int
width)
56
{
57
mask_width_
= width;
58
mask_width_inv_
= 1.0f / (
float
)width;
59
mask_px_ofs_
[0] =
mask_width_inv_
* 0.5f;
60
}
61
void
set_mask_height
(
int
height)
62
{
63
mask_height_
= height;
64
mask_height_inv_
= 1.0f / (
float
)height;
65
mask_px_ofs_
[1] =
mask_height_inv_
* 0.5f;
66
}
67
int
get_mask_width
()
68
{
69
return
mask_width_
;
70
}
71
int
get_mask_height
()
72
{
73
return
mask_height_
;
74
}
75
void
set_framenumber
(
int
frame_number)
76
{
77
frame_number_
= frame_number;
78
}
79
void
set_feather
(
bool
feather)
80
{
81
do_feather_
= feather;
82
}
83
84
void
set_motion_blur_samples
(
int
samples)
85
{
86
raster_mask_handle_tot_
= std::min(std::max(1, samples),
CMP_NODE_MASK_MBLUR_SAMPLES_MAX
);
87
}
88
void
set_motion_blur_shutter
(
float
shutter)
89
{
90
frame_shutter_
= shutter;
91
}
92
93
void
update_memory_buffer_partial
(
MemoryBuffer
*
output
,
94
const
rcti
&area,
95
Span<MemoryBuffer *>
inputs
)
override
;
96
97
private
:
98
Vector<MaskRasterHandle *>
get_non_null_handles()
const
;
99
};
100
101
}
// namespace blender::compositor
BLI_listbase.h
COM_MultiThreadedOperation.h
DNA_mask_types.h
CMP_NODE_MASK_MBLUR_SAMPLES_MAX
#define CMP_NODE_MASK_MBLUR_SAMPLES_MAX
Definition
DNA_node_types.h:2646
IMB_imbuf_types.hh
Contains defines and structs used throughout the imbuf module.
output
#define output
blender::Span
Definition
BLI_span.hh:75
blender::compositor::MaskOperation::raster_mask_handle_tot_
unsigned int raster_mask_handle_tot_
Definition
COM_MaskOperation.h:38
blender::compositor::MaskOperation::frame_shutter_
float frame_shutter_
Definition
COM_MaskOperation.h:32
blender::compositor::MaskOperation::raster_mask_handles_
struct MaskRasterHandle * raster_mask_handles_[CMP_NODE_MASK_MBLUR_SAMPLES_MAX]
Definition
COM_MaskOperation.h:37
blender::compositor::MaskOperation::init_execution
void init_execution() override
Definition
COM_MaskOperation.cc:26
blender::compositor::MaskOperation::set_mask_height
void set_mask_height(int height)
Definition
COM_MaskOperation.h:61
blender::compositor::MaskOperation::deinit_execution
void deinit_execution() override
Definition
COM_MaskOperation.cc:75
blender::compositor::MaskOperation::get_mask_width
int get_mask_width()
Definition
COM_MaskOperation.h:67
blender::compositor::MaskOperation::set_motion_blur_samples
void set_motion_blur_samples(int samples)
Definition
COM_MaskOperation.h:84
blender::compositor::MaskOperation::mask_height_
int mask_height_
Definition
COM_MaskOperation.h:27
blender::compositor::MaskOperation::mask_height_inv_
float mask_height_inv_
Definition
COM_MaskOperation.h:29
blender::compositor::MaskOperation::set_feather
void set_feather(bool feather)
Definition
COM_MaskOperation.h:79
blender::compositor::MaskOperation::set_mask_width
void set_mask_width(int width)
Definition
COM_MaskOperation.h:55
blender::compositor::MaskOperation::do_feather_
bool do_feather_
Definition
COM_MaskOperation.h:35
blender::compositor::MaskOperation::get_mask_height
int get_mask_height()
Definition
COM_MaskOperation.h:71
blender::compositor::MaskOperation::frame_number_
int frame_number_
Definition
COM_MaskOperation.h:33
blender::compositor::MaskOperation::MaskOperation
MaskOperation()
Definition
COM_MaskOperation.cc:12
blender::compositor::MaskOperation::mask_px_ofs_
float mask_px_ofs_[2]
Definition
COM_MaskOperation.h:30
blender::compositor::MaskOperation::mask_width_inv_
float mask_width_inv_
Definition
COM_MaskOperation.h:28
blender::compositor::MaskOperation::set_mask
void set_mask(Mask *mask)
Definition
COM_MaskOperation.h:51
blender::compositor::MaskOperation::set_motion_blur_shutter
void set_motion_blur_shutter(float shutter)
Definition
COM_MaskOperation.h:88
blender::compositor::MaskOperation::mask_
Mask * mask_
Definition
COM_MaskOperation.h:22
blender::compositor::MaskOperation::update_memory_buffer_partial
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_MaskOperation.cc:97
blender::compositor::MaskOperation::set_framenumber
void set_framenumber(int frame_number)
Definition
COM_MaskOperation.h:75
blender::compositor::MaskOperation::determine_canvas
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
Definition
COM_MaskOperation.cc:85
blender::compositor::MaskOperation::mask_width_
int mask_width_
Definition
COM_MaskOperation.h:26
blender::compositor::MemoryBuffer
a MemoryBuffer contains access to the data
Definition
COM_MemoryBuffer.h:35
blender::compositor::MultiThreadedOperation::MultiThreadedOperation
MultiThreadedOperation()
Definition
COM_MultiThreadedOperation.cc:10
float
draw_view in_light_buf[] float
Definition
eevee_light_culling_info.hh:42
blender::compositor::DataType::Vector
@ Vector
Vector data type.
Definition
COM_defines.h:25
mask
ccl_device_inline float4 mask(const int4 mask, const float4 a)
Definition
math_float4.h:559
blender::compositor
Definition
COM_JumpFloodingAlgorithm.cc:20
inputs
static blender::bke::bNodeSocketTemplate inputs[]
Definition
node_texture_at.cc:11
MaskRasterHandle
Definition
mask_rasterize.cc:196
Mask
Definition
DNA_mask_types.h:19
rcti
Definition
DNA_vec_types.h:68
Generated on Sat Oct 4 2025 05:32:23 for Blender by
doxygen
1.14.0