|
Blender V4.3
|
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 CompositorContext & | get_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 |
the ExecutionSystem contains the whole compositor tree.
Definition at line 93 of file COM_ExecutionSystem.h.
| 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.
| 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(), bNodeTree::previews, blender::compositor::CompositorContext::set_bnodetree(), blender::compositor::CompositorContext::set_preview_hash(), blender::compositor::CompositorContext::set_profiler(), blender::compositor::CompositorContext::set_render_context(), blender::compositor::CompositorContext::set_render_data(), blender::compositor::CompositorContext::set_rendering(), blender::compositor::CompositorContext::set_scene(), and blender::compositor::CompositorContext::set_view_name().
| blender::compositor::ExecutionSystem::~ExecutionSystem | ( | ) |
Destructor
Definition at line 52 of file COM_ExecutionSystem.cc.
References BLI_condition_end(), and BLI_mutex_end().
| void blender::compositor::ExecutionSystem::execute | ( | ) |
execute this system
Definition at line 70 of file COM_ExecutionSystem.cc.
References blender::compositor::ExecutionModel::execute(), blender::compositor::DebugInfo::execute_started(), blender::realtime_compositor::Profiler::finalize(), blender::compositor::CompositorContext::get_bnodetree(), and blender::compositor::CompositorContext::get_profiler().
Referenced by COM_execute().
|
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().
| void blender::compositor::ExecutionSystem::execute_work | ( | const rcti & | work_rect, |
| std::function< void(const rcti &split_rect)> | work_func ) |
Multi-threadedly execute given work function passing work_rect splits as argument.
Definition at line 82 of file COM_ExecutionSystem.cc.
References BLI_assert, BLI_condition_notify_one(), BLI_condition_wait(), BLI_mutex_lock(), BLI_mutex_unlock(), BLI_rcti_init(), BLI_rcti_size_y(), blender::compositor::WorkPackage::execute_fn, blender::compositor::WorkPackage::executed_fn, blender::compositor::WorkScheduler::finish(), is_breaked(), blender::compositor::WorkScheduler::schedule(), rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.
Referenced by blender::compositor::CalculateMeanOperation::calculate_mean(), blender::compositor::CalculateStandardDeviationOperation::calculate_value(), execute_work(), and blender::compositor::TonemapOperation::update_memory_buffer_started().
|
inline |
get the reference to the compositor context
Definition at line 158 of file COM_ExecutionSystem.h.
Referenced by blender::compositor::DebugInfo::graphviz_operation().
| bool blender::compositor::ExecutionSystem::is_breaked | ( | ) | const |
Definition at line 142 of file COM_ExecutionSystem.cc.
References blender::compositor::CompositorContext::get_bnodetree(), and bNodeTree::runtime.
Referenced by blender::compositor::ViewerOperation::clear_display_buffer(), execute_work(), and blender::compositor::ViewerOperation::init_execution().
| void blender::compositor::ExecutionSystem::set_operations | ( | Span< NodeOperation * > | operations | ) |
Definition at line 65 of file COM_ExecutionSystem.cc.
Referenced by blender::compositor::NodeOperationBuilder::convert_to_operations().
|
friend |
Definition at line 193 of file COM_ExecutionSystem.h.