Blender
V3.3
source
blender
compositor
intern
COM_MultiThreadedRowOperation.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later
2
* Copyright 2021 Blender Foundation. */
3
4
#pragma once
5
6
#include "
BLI_array.h
"
7
8
#include "
COM_MultiThreadedOperation.h
"
9
10
namespace
blender::compositor
{
11
16
class
MultiThreadedRowOperation
:
public
MultiThreadedOperation
{
17
protected
:
18
struct
PixelCursor
{
19
float
*
out
;
20
int
out_stride
;
21
const
float
*
row_end
;
22
Array<const float *>
ins
;
23
Array<int>
in_strides
;
24
25
public
:
26
PixelCursor
(
int
num_inputs);
27
28
void
next
()
29
{
30
BLI_assert
(
out
<
row_end
);
31
out
+=
out_stride
;
32
for
(
int
i = 0; i <
ins
.
size
(); i++) {
33
ins
[i] +=
in_strides
[i];
34
}
35
}
36
};
37
38
protected
:
39
virtual
void
update_memory_buffer_row
(
PixelCursor
&p) = 0;
40
41
private
:
42
void
update_memory_buffer_partial(
MemoryBuffer
*
output
,
43
const
rcti
&
area
,
44
Span<MemoryBuffer *>
inputs
)
final
;
45
};
46
47
}
// namespace blender::compositor
BLI_array.h
A (mainly) macro array library.
BLI_assert
#define BLI_assert(a)
Definition:
BLI_assert.h:46
COM_MultiThreadedOperation.h
blender::Array< const float * >
blender::Array::size
int64_t size() const
Definition:
BLI_array.hh:244
blender::Span
Definition:
BLI_span.hh:73
blender::compositor::MemoryBuffer
a MemoryBuffer contains access to the data of a chunk
Definition:
COM_MemoryBuffer.h:43
blender::compositor::MultiThreadedOperation
Definition:
COM_MultiThreadedOperation.h:10
blender::compositor::MultiThreadedRowOperation
Definition:
COM_MultiThreadedRowOperation.h:16
blender::compositor::MultiThreadedRowOperation::update_memory_buffer_row
virtual void update_memory_buffer_row(PixelCursor &p)=0
output
ccl_global KernelShaderEvalInput ccl_global float * output
Definition:
kernel/device/gpu/kernel.h:751
blender::compositor
Definition:
COM_defines.h:10
blender::compositor::area
static void area(int d1, int d2, int e1, int e2, float weights[2])
Definition:
COM_SMAAOperation.cc:113
inputs
static bNodeSocketTemplate inputs[]
Definition:
node_texture_at.c:11
blender::compositor::MultiThreadedRowOperation::PixelCursor
Definition:
COM_MultiThreadedRowOperation.h:18
blender::compositor::MultiThreadedRowOperation::PixelCursor::next
void next()
Definition:
COM_MultiThreadedRowOperation.h:28
blender::compositor::MultiThreadedRowOperation::PixelCursor::out
float * out
Definition:
COM_MultiThreadedRowOperation.h:19
blender::compositor::MultiThreadedRowOperation::PixelCursor::PixelCursor
PixelCursor(int num_inputs)
Definition:
COM_MultiThreadedRowOperation.cc:8
blender::compositor::MultiThreadedRowOperation::PixelCursor::row_end
const float * row_end
Definition:
COM_MultiThreadedRowOperation.h:21
blender::compositor::MultiThreadedRowOperation::PixelCursor::ins
Array< const float * > ins
Definition:
COM_MultiThreadedRowOperation.h:22
blender::compositor::MultiThreadedRowOperation::PixelCursor::in_strides
Array< int > in_strides
Definition:
COM_MultiThreadedRowOperation.h:23
blender::compositor::MultiThreadedRowOperation::PixelCursor::out_stride
int out_stride
Definition:
COM_MultiThreadedRowOperation.h:20
rcti
Definition:
DNA_vec_types.h:62
Generated on Tue Oct 22 2024 13:18:25 for Blender by
doxygen
1.9.1