Blender V4.3
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
8
9namespace blender::compositor {
10
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:
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;
32 const rcti &area,
33 Span<MemoryBuffer *> inputs) override;
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
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.
void pixel_transform(const float xy[2], float r_uv[2], float r_deriv[2][2])
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
void update_memory_buffer_started(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
a MemoryBuffer contains access to the data
int xy[2]
Definition wm_draw.cc:170