Blender V4.3
blender::compositor::ExecutionSystem Class Reference

the ExecutionSystem contains the whole compositor tree. More...

#include <COM_ExecutionSystem.h>

Public Member Functions

 ExecutionSystem (RenderData *rd, Scene *scene, bNodeTree *editingtree, bool rendering, const char *view_name, realtime_compositor::RenderContext *render_context, realtime_compositor::Profiler *profiler)
 Create a new ExecutionSystem and initialize it with the editingtree.
 ~ExecutionSystem ()
void set_operations (Span< NodeOperation * > operations)
void execute ()
 execute this system
const CompositorContextget_context () const
 get the reference to the compositor context
void execute_work (const rcti &work_rect, std::function< void(const rcti &split_rect)> work_func)
template<typename TResult>
void execute_work (const rcti &work_rect, std::function< TResult(const rcti &split_rect)> work_func, TResult &join, std::function< void(TResult &join, const TResult &chunk)> reduce_func)
bool is_breaked () const

Friends

class DebugInfo

Detailed Description

the ExecutionSystem contains the whole compositor tree.

Definition at line 93 of file COM_ExecutionSystem.h.

Constructor & Destructor Documentation

◆ ExecutionSystem()

blender::compositor::ExecutionSystem::ExecutionSystem ( RenderData * rd,
Scene * scene,
bNodeTree * editingtree,
bool rendering,
const char * view_name,
realtime_compositor::RenderContext * render_context,
realtime_compositor::Profiler * profiler )

Create a new ExecutionSystem and initialize it with the editingtree.

Parameters
editingtree[bNodeTree *]
rendering[true false]

Definition at line 22 of file COM_ExecutionSystem.cc.

References BLI_condition_init(), BLI_mutex_init(), blender::compositor::NodeOperationBuilder::convert_to_operations(), blender::compositor::WorkScheduler::get_num_cpu_threads(), and bNodeTree::previews.

◆ ~ExecutionSystem()

blender::compositor::ExecutionSystem::~ExecutionSystem ( )

Destructor

Definition at line 52 of file COM_ExecutionSystem.cc.

References BLI_condition_end(), and BLI_mutex_end().

Member Function Documentation

◆ execute()

void blender::compositor::ExecutionSystem::execute ( )

execute this system

Definition at line 70 of file COM_ExecutionSystem.cc.

References blender::compositor::DebugInfo::execute_started().

Referenced by COM_execute().

◆ execute_work() [1/2]

template<typename TResult>
void blender::compositor::ExecutionSystem::execute_work ( const rcti & work_rect,
std::function< TResult(const rcti &split_rect)> work_func,
TResult & join,
std::function< void(TResult &join, const TResult &chunk)> reduce_func )
inline

Multi-threaded execution of given work function passing work_rect splits as argument. Once finished, caller thread will call reduce_func for each thread result.

Definition at line 173 of file COM_ExecutionSystem.h.

References atomic_fetch_and_add_int32(), and execute_work().

◆ execute_work() [2/2]

void blender::compositor::ExecutionSystem::execute_work ( const rcti & work_rect,
std::function< void(const rcti &split_rect)> work_func )

◆ get_context()

const CompositorContext & blender::compositor::ExecutionSystem::get_context ( ) const
inline

get the reference to the compositor context

Definition at line 158 of file COM_ExecutionSystem.h.

Referenced by blender::compositor::DebugInfo::graphviz_operation().

◆ is_breaked()

bool blender::compositor::ExecutionSystem::is_breaked ( ) const

Definition at line 142 of file COM_ExecutionSystem.cc.

References bNodeTree::runtime.

Referenced by execute_work().

◆ set_operations()

void blender::compositor::ExecutionSystem::set_operations ( Span< NodeOperation * > operations)

◆ DebugInfo

friend class DebugInfo
friend

Definition at line 193 of file COM_ExecutionSystem.h.

References DebugInfo.

Referenced by DebugInfo.


The documentation for this class was generated from the following files: