Blender
V3.3
source
blender
compositor
intern
COM_MultiThreadedOperation.cc
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later */
2
3
#include "
COM_MultiThreadedOperation.h
"
4
#include "
COM_ExecutionSystem.h
"
5
6
namespace
blender::compositor
{
7
8
MultiThreadedOperation::MultiThreadedOperation
()
9
{
10
num_passes_
= 1;
11
current_pass_
= 0;
12
flags_
.
is_fullframe_operation
=
true
;
13
}
14
15
void
MultiThreadedOperation::update_memory_buffer(
MemoryBuffer
*
output
,
16
const
rcti
&
area
,
17
Span<MemoryBuffer *>
inputs
)
18
{
19
for
(
current_pass_
= 0;
current_pass_
<
num_passes_
;
current_pass_
++) {
20
update_memory_buffer_started
(
output
,
area
,
inputs
);
21
exec_system_
->
execute_work
(
area
, [=](
const
rcti
&split_rect) {
22
update_memory_buffer_partial
(
output
, split_rect,
inputs
);
23
});
24
update_memory_buffer_finished
(
output
,
area
,
inputs
);
25
}
26
}
27
28
}
// namespace blender::compositor
COM_ExecutionSystem.h
COM_MultiThreadedOperation.h
blender::Span
Definition:
BLI_span.hh:73
blender::compositor::ExecutionSystem::execute_work
void execute_work(const rcti &work_rect, std::function< void(const rcti &split_rect)> work_func)
Definition:
COM_ExecutionSystem.cc:102
blender::compositor::MemoryBuffer
a MemoryBuffer contains access to the data of a chunk
Definition:
COM_MemoryBuffer.h:43
blender::compositor::MultiThreadedOperation::update_memory_buffer_started
virtual void update_memory_buffer_started(MemoryBuffer *UNUSED(output), const rcti &UNUSED(area), Span< MemoryBuffer * > UNUSED(inputs))
Definition:
COM_MultiThreadedOperation.h:27
blender::compositor::MultiThreadedOperation::update_memory_buffer_finished
virtual void update_memory_buffer_finished(MemoryBuffer *UNUSED(output), const rcti &UNUSED(area), Span< MemoryBuffer * > UNUSED(inputs))
Definition:
COM_MultiThreadedOperation.h:43
blender::compositor::MultiThreadedOperation::update_memory_buffer_partial
virtual void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs)=0
blender::compositor::MultiThreadedOperation::num_passes_
int num_passes_
Definition:
COM_MultiThreadedOperation.h:15
blender::compositor::MultiThreadedOperation::MultiThreadedOperation
MultiThreadedOperation()
Definition:
COM_MultiThreadedOperation.cc:8
blender::compositor::MultiThreadedOperation::current_pass_
int current_pass_
Definition:
COM_MultiThreadedOperation.h:19
blender::compositor::NodeOperation::flags_
NodeOperationFlags flags_
Definition:
COM_NodeOperation.h:347
blender::compositor::NodeOperation::exec_system_
ExecutionSystem * exec_system_
Definition:
COM_NodeOperation.h:349
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::NodeOperationFlags::is_fullframe_operation
bool is_fullframe_operation
Definition:
COM_NodeOperation.h:227
rcti
Definition:
DNA_vec_types.h:62
Generated on Sat Jul 27 2024 14:57:55 for Blender by
doxygen
1.9.1