Blender
V4.3
source
blender
compositor
operations
COM_DisplaceOperation.h
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
#pragma once
6
7
#include "
COM_MultiThreadedOperation.h
"
8
9
namespace
blender::compositor
{
10
11
class
DisplaceOperation
:
public
MultiThreadedOperation
{
12
private
:
13
float
width_x4_;
14
float
height_x4_;
15
16
int
input_vector_width_;
17
int
input_vector_height_;
18
19
std::function<void(
float
x
,
float
y
,
float
*out)> vector_read_fn_;
20
std::function<void(
float
x
,
float
y
,
float
*out)> scale_x_read_fn_;
21
std::function<void(
float
x
,
float
y
,
float
*out)> scale_y_read_fn_;
22
23
public
:
24
DisplaceOperation
();
25
26
void
pixel_transform
(
const
float
xy
[2],
float
r_uv[2],
float
r_deriv[2][2]);
27
28
void
init_execution
()
override
;
29
30
void
get_area_of_interest
(
int
input_idx,
const
rcti
&output_area,
rcti
&r_input_area)
override
;
31
void
update_memory_buffer_started
(
MemoryBuffer
*
output
,
32
const
rcti
&area,
33
Span<MemoryBuffer *>
inputs
)
override
;
34
void
update_memory_buffer_partial
(
MemoryBuffer
*
output
,
35
const
rcti
&area,
36
Span<MemoryBuffer *>
inputs
)
override
;
37
38
private
:
39
bool
read_displacement(
40
float
x
,
float
y
,
float
xscale,
float
yscale,
const
float
origin[2],
float
&r_u,
float
&r_v);
41
};
42
43
}
// namespace blender::compositor
x
x
Definition
BLI_expr_pylike_eval_test.cc:345
COM_MultiThreadedOperation.h
output
#define output
blender::Span
Definition
BLI_span.hh:75
blender::compositor::DisplaceOperation::get_area_of_interest
void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) override
Get input operation area being read by this operation on rendering given output area.
Definition
COM_DisplaceOperation.cc:106
blender::compositor::DisplaceOperation::DisplaceOperation
DisplaceOperation()
Definition
COM_DisplaceOperation.cc:9
blender::compositor::DisplaceOperation::pixel_transform
void pixel_transform(const float xy[2], float r_uv[2], float r_deriv[2][2])
Definition
COM_DisplaceOperation.cc:47
blender::compositor::DisplaceOperation::update_memory_buffer_partial
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_DisplaceOperation.cc:139
blender::compositor::DisplaceOperation::init_execution
void init_execution() override
Definition
COM_DisplaceOperation.cc:19
blender::compositor::DisplaceOperation::update_memory_buffer_started
void update_memory_buffer_started(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition
COM_DisplaceOperation.cc:127
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
y
y
Definition
compositor_morphological_blur_info.hh:15
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
xy
int xy[2]
Definition
wm_draw.cc:170
Generated on Sat Oct 4 2025 05:32:23 for Blender by
doxygen
1.14.0