Blender  V3.3
Public Member Functions | Friends | List of all members
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, bool fastcalculation, const char *view_name)
 Create a new ExecutionSystem and initialize it with the editingtree. More...
 
 ~ExecutionSystem ()
 
void set_operations (const Vector< NodeOperation * > &operations, const Vector< ExecutionGroup * > &groups)
 
void execute ()
 execute this system More...
 
const CompositorContextget_context () const
 get the reference to the compositor context More...
 
SharedOperationBuffersget_active_buffers ()
 
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 114 of file COM_ExecutionSystem.h.

Constructor & Destructor Documentation

◆ ExecutionSystem()

blender::compositor::ExecutionSystem::ExecutionSystem ( RenderData rd,
Scene scene,
bNodeTree editingtree,
bool  rendering,
bool  fastcalculation,
const char *  view_name 
)

◆ ~ExecutionSystem()

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

Destructor

Definition at line 68 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 93 of file COM_ExecutionSystem.cc.

References blender::compositor::ExecutionModel::execute(), and 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 204 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_active_buffers()

SharedOperationBuffers& blender::compositor::ExecutionSystem::get_active_buffers ( )
inline

Definition at line 189 of file COM_ExecutionSystem.h.

◆ get_context()

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

get the reference to the compositor context

Definition at line 184 of file COM_ExecutionSystem.h.

Referenced by blender::compositor::DebugInfo::graphviz_operation(), and blender::compositor::DebugInfo::graphviz_system().

◆ is_breaked()

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

◆ set_operations()

void blender::compositor::ExecutionSystem::set_operations ( const Vector< NodeOperation * > &  operations,
const Vector< ExecutionGroup * > &  groups 
)

Friends And Related Function Documentation

◆ DebugInfo

friend class DebugInfo
friend

Definition at line 224 of file COM_ExecutionSystem.h.


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