Blender
V4.3
source
blender
compositor
intern
COM_FullFrameExecutionModel.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 "
BLI_vector.hh
"
8
9
#include "
COM_Enums.h
"
10
#include "
COM_ExecutionModel.h
"
11
12
#ifdef WITH_CXX_GUARDEDALLOC
13
# include "
MEM_guardedalloc.h
"
14
#endif
15
16
namespace
blender::compositor
{
17
18
/* Forward declarations. */
19
class
CompositorContext;
20
class
ExecutionSystem;
21
class
MemoryBuffer;
22
class
NodeOperation;
23
class
SharedOperationBuffers;
24
28
class
FullFrameExecutionModel
:
public
ExecutionModel
{
29
private
:
34
SharedOperationBuffers
&active_buffers_;
35
39
int
num_operations_finished_;
40
44
Vector<eCompositorPriority>
priorities_;
45
46
public
:
47
FullFrameExecutionModel
(
CompositorContext
&context,
48
SharedOperationBuffers
&shared_buffers,
49
Span<NodeOperation *>
operations);
50
51
void
execute
(
ExecutionSystem
&exec_system)
override
;
52
53
private
:
54
void
determine_areas_to_render_and_reads();
58
void
render_operations();
59
void
render_output_dependencies(
NodeOperation
*output_op);
64
Vector<MemoryBuffer *>
get_input_buffers(
NodeOperation
*op,
int
output_x,
int
output_y);
65
MemoryBuffer
*create_operation_buffer(
NodeOperation
*op,
int
output_x,
int
output_y);
66
void
render_operation(
NodeOperation
*op);
67
68
void
operation_finished(
NodeOperation
*operation);
69
74
void
get_output_render_area(
NodeOperation
*output_op,
rcti
&r_area);
78
void
determine_areas_to_render(
NodeOperation
*output_op,
const
rcti
&output_area);
83
void
determine_reads(
NodeOperation
*output_op);
84
85
void
update_progress_bar();
86
87
#ifdef WITH_CXX_GUARDEDALLOC
88
MEM_CXX_CLASS_ALLOC_FUNCS(
"COM:FullFrameExecutionModel"
)
89
#endif
90
};
91
92
}
// namespace blender::compositor
BLI_vector.hh
COM_Enums.h
COM_ExecutionModel.h
MEM_guardedalloc.h
Read Guarded memory(de)allocation.
blender::Span
Definition
BLI_span.hh:75
blender::Vector
Definition
BLI_vector.hh:65
blender::compositor::CompositorContext
Overall context of the compositor.
Definition
COM_CompositorContext.h:27
blender::compositor::ExecutionModel
Definition
COM_ExecutionModel.h:25
blender::compositor::ExecutionSystem
the ExecutionSystem contains the whole compositor tree.
Definition
COM_ExecutionSystem.h:93
blender::compositor::FullFrameExecutionModel
Definition
COM_FullFrameExecutionModel.h:28
blender::compositor::FullFrameExecutionModel::FullFrameExecutionModel
FullFrameExecutionModel(CompositorContext &context, SharedOperationBuffers &shared_buffers, Span< NodeOperation * > operations)
Definition
COM_FullFrameExecutionModel.cc:25
blender::compositor::FullFrameExecutionModel::execute
void execute(ExecutionSystem &exec_system) override
Definition
COM_FullFrameExecutionModel.cc:37
blender::compositor::MemoryBuffer
a MemoryBuffer contains access to the data
Definition
COM_MemoryBuffer.h:35
blender::compositor::NodeOperation
NodeOperation contains calculation logic.
Definition
COM_NodeOperation.h:265
blender::compositor::SharedOperationBuffers
Definition
COM_SharedOperationBuffers.h:25
blender::compositor
Definition
COM_JumpFloodingAlgorithm.cc:20
rcti
Definition
DNA_vec_types.h:68
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0