Blender
V4.3
source
blender
compositor
intern
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
7
#include "
COM_MultiThreadedOperation.h
"
8
9
namespace
blender::compositor
{
10
15
class
MultiThreadedRowOperation
:
public
MultiThreadedOperation
{
16
protected
:
17
struct
PixelCursor
{
18
float
*
out
;
19
int
out_stride
;
20
const
float
*
row_end
;
21
Array<const float *>
ins
;
22
Array<int>
in_strides
;
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
:
38
virtual
void
update_memory_buffer_row
(
PixelCursor
&p) = 0;
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
BLI_assert
#define BLI_assert(a)
Definition
BLI_assert.h:50
COM_MultiThreadedOperation.h
blender::Array
Definition
BLI_array.hh:50
blender::Array::size
int64_t size() const
Definition
BLI_array.hh:245
blender::Span
Definition
BLI_span.hh:75
blender::compositor::MemoryBuffer
a MemoryBuffer contains access to the data
Definition
COM_MemoryBuffer.h:35
blender::compositor::MultiThreadedOperation
Definition
COM_MultiThreadedOperation.h:11
blender::compositor::MultiThreadedRowOperation
Definition
COM_MultiThreadedRowOperation.h:15
blender::compositor::MultiThreadedRowOperation::update_memory_buffer_row
virtual void update_memory_buffer_row(PixelCursor &p)=0
blender::compositor
Definition
COM_JumpFloodingAlgorithm.cc:20
blender::compositor::MultiThreadedRowOperation::PixelCursor
Definition
COM_MultiThreadedRowOperation.h:17
blender::compositor::MultiThreadedRowOperation::PixelCursor::next
void next()
Definition
COM_MultiThreadedRowOperation.h:27
blender::compositor::MultiThreadedRowOperation::PixelCursor::out
float * out
Definition
COM_MultiThreadedRowOperation.h:18
blender::compositor::MultiThreadedRowOperation::PixelCursor::PixelCursor
PixelCursor(int num_inputs)
Definition
COM_MultiThreadedRowOperation.cc:9
blender::compositor::MultiThreadedRowOperation::PixelCursor::row_end
const float * row_end
Definition
COM_MultiThreadedRowOperation.h:20
blender::compositor::MultiThreadedRowOperation::PixelCursor::ins
Array< const float * > ins
Definition
COM_MultiThreadedRowOperation.h:21
blender::compositor::MultiThreadedRowOperation::PixelCursor::in_strides
Array< int > in_strides
Definition
COM_MultiThreadedRowOperation.h:22
blender::compositor::MultiThreadedRowOperation::PixelCursor::out_stride
int out_stride
Definition
COM_MultiThreadedRowOperation.h:19
rcti
Definition
DNA_vec_types.h:68
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0