Blender V4.3
COM_MultiThreadedOperation.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
7
8namespace blender::compositor {
9
15
16void MultiThreadedOperation::update_memory_buffer(MemoryBuffer *output,
17 const rcti &area,
19{
21 update_memory_buffer_started(output, area, inputs);
22 exec_system_->execute_work(area, [=](const rcti &split_rect) {
23 update_memory_buffer_partial(output, split_rect, inputs);
24 });
25 update_memory_buffer_finished(output, area, inputs);
26 }
27}
28
29} // namespace blender::compositor
void execute_work(const rcti &work_rect, std::function< void(const rcti &split_rect)> work_func)
a MemoryBuffer contains access to the data
virtual void update_memory_buffer_started(MemoryBuffer *, const rcti &, Span< MemoryBuffer * >)
virtual void update_memory_buffer_finished(MemoryBuffer *, const rcti &, Span< MemoryBuffer * >)
virtual void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs)=0