Blender
V3.3
source
blender
compositor
intern
COM_FullFrameExecutionModel.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_vector.hh
"
7
8
#include "
COM_Enums.h
"
9
#include "
COM_ExecutionModel.h
"
10
11
#ifdef WITH_CXX_GUARDEDALLOC
12
# include "
MEM_guardedalloc.h
"
13
#endif
14
15
namespace
blender::compositor
{
16
17
/* Forward declarations. */
18
class
CompositorContext;
19
class
ExecutionSystem;
20
class
MemoryBuffer;
21
class
NodeOperation;
22
class
SharedOperationBuffers;
23
27
class
FullFrameExecutionModel
:
public
ExecutionModel
{
28
private
:
33
SharedOperationBuffers
&active_buffers_;
34
38
int
num_operations_finished_;
39
43
Vector<eCompositorPriority>
priorities_;
44
45
public
:
46
FullFrameExecutionModel
(
CompositorContext
&
context
,
47
SharedOperationBuffers
&shared_buffers,
48
Span<NodeOperation *>
operations);
49
50
void
execute
(
ExecutionSystem
&exec_system)
override
;
51
52
private
:
53
void
determine_areas_to_render_and_reads();
57
void
render_operations();
58
void
render_output_dependencies(
NodeOperation
*output_op);
63
Vector<MemoryBuffer *>
get_input_buffers(
NodeOperation
*op,
int
output_x,
int
output_y);
64
MemoryBuffer
*create_operation_buffer(
NodeOperation
*op,
int
output_x,
int
output_y);
65
void
render_operation(
NodeOperation
*op);
66
67
void
operation_finished(
NodeOperation
*operation);
68
73
void
get_output_render_area(
NodeOperation
*output_op,
rcti
&r_area);
77
void
determine_areas_to_render(
NodeOperation
*output_op,
const
rcti
&output_area);
82
void
determine_reads(
NodeOperation
*output_op);
83
84
void
update_progress_bar();
85
86
#ifdef WITH_CXX_GUARDEDALLOC
87
MEM_CXX_CLASS_ALLOC_FUNCS(
"COM:FullFrameExecutionModel"
)
88
#endif
89
};
90
91
}
// 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:73
blender::Vector< eCompositorPriority >
blender::compositor::CompositorContext
Overall context of the compositor.
Definition:
COM_CompositorContext.h:19
blender::compositor::ExecutionModel
Definition:
COM_ExecutionModel.h:23
blender::compositor::ExecutionSystem
the ExecutionSystem contains the whole compositor tree.
Definition:
COM_ExecutionSystem.h:114
blender::compositor::FullFrameExecutionModel
Definition:
COM_FullFrameExecutionModel.h:27
blender::compositor::FullFrameExecutionModel::FullFrameExecutionModel
FullFrameExecutionModel(CompositorContext &context, SharedOperationBuffers &shared_buffers, Span< NodeOperation * > operations)
Definition:
COM_FullFrameExecutionModel.cc:18
blender::compositor::FullFrameExecutionModel::execute
void execute(ExecutionSystem &exec_system) override
Definition:
COM_FullFrameExecutionModel.cc:32
blender::compositor::MemoryBuffer
a MemoryBuffer contains access to the data of a chunk
Definition:
COM_MemoryBuffer.h:43
blender::compositor::NodeOperation
NodeOperation contains calculation logic.
Definition:
COM_NodeOperation.h:303
blender::compositor::SharedOperationBuffers
Definition:
COM_SharedOperationBuffers.h:24
blender::compositor
Definition:
COM_defines.h:10
blender::compositor::context
cl_context context
Definition:
COM_WorkScheduler.cc:73
rcti
Definition:
DNA_vec_types.h:62
Generated on Tue Oct 22 2024 13:18:25 for Blender by
doxygen
1.9.1