Blender V4.3
COM_MultiThreadedRowOperation.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2021 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
8
9namespace blender::compositor {
10
16 protected:
17 struct PixelCursor {
18 float *out;
20 const float *row_end;
23
24 public:
25 PixelCursor(int num_inputs);
26
27 void next()
28 {
29 BLI_assert(out < row_end);
30 out += out_stride;
31 for (int i = 0; i < ins.size(); i++) {
32 ins[i] += in_strides[i];
33 }
34 }
35 };
36
37 protected:
39
40 private:
41 void update_memory_buffer_partial(MemoryBuffer *output,
42 const rcti &area,
43 Span<MemoryBuffer *> inputs) final;
44};
45
46} // namespace blender::compositor
#define BLI_assert(a)
Definition BLI_assert.h:50
int64_t size() const
Definition BLI_array.hh:245
a MemoryBuffer contains access to the data
virtual void update_memory_buffer_row(PixelCursor &p)=0