Blender
V3.3
|
#include "BLI_threads.h"
#include "BLT_translation.h"
#include "BKE_node.h"
#include "BKE_scene.h"
#include "COM_ExecutionSystem.h"
#include "COM_WorkScheduler.h"
#include "COM_compositor.h"
Go to the source code of this file.
Functions | |
static void | compositor_init_node_previews (const RenderData *render_data, bNodeTree *node_tree) |
static void | compositor_reset_node_tree_status (bNodeTree *node_tree) |
void | COM_execute (RenderData *render_data, Scene *scene, bNodeTree *node_tree, int rendering, const char *view_name) |
The main method that is used to execute the compositor tree. It can be executed during editing (blenkernel/node.cc) or rendering (renderer/pipeline.c) More... | |
void | COM_deinitialize () |
Deinitialize the compositor caches and allocated memory. Use COM_clear_caches to only free the caches. More... | |
Variables | |
struct { | |
bool is_initialized = false | |
ThreadMutex mutex | |
} | g_compositor |
Deinitialize the compositor caches and allocated memory. Use COM_clear_caches to only free the caches.
Definition at line 98 of file COM_compositor.cc.
References BLI_mutex_end(), BLI_mutex_lock(), BLI_mutex_unlock(), blender::compositor::WorkScheduler::deinitialize(), and g_compositor.
Referenced by WM_exit_ex().
void COM_execute | ( | RenderData * | render_data, |
Scene * | scene, | ||
bNodeTree * | node_tree, | ||
int | rendering, | ||
const char * | view_name | ||
) |
The main method that is used to execute the compositor tree. It can be executed during editing (blenkernel/node.cc) or rendering (renderer/pipeline.c)
render_data | [struct RenderData] Render data for this composite, this won't always belong to a scene. |
node_tree | [struct bNodeTree] reference to the compositor editing tree |
rendering | [true false] This parameter determines whether the function is called from rendering (true) or editing (false). based on this setting the system will work differently:
|
- during editing all output nodes will be calculated
- another quality setting can be used bNodeTree. The quality is determined by the bNodeTree fields. quality can be modified by the user from within the node panels.
- output nodes can have different priorities in the WorkScheduler.This is implemented in the COM_execute function.
OCIO_TODO: this options only used in rare cases, namely in output file node, so probably this settings could be passed in a nicer way. should be checked further, probably it'll be also needed for preview generation in display space
Definition at line 48 of file COM_compositor.cc.
References BKE_render_num_threads(), BLI_mutex_init(), BLI_mutex_lock(), BLI_mutex_unlock(), compositor_init_node_previews(), compositor_reset_node_tree_status(), blender::compositor::ExecutionSystem::execute(), g_compositor, blender::compositor::WorkScheduler::initialize(), NTREE_COM_OPENCL, NTREE_TWO_PASS, and scene.
Referenced by ntreeCompositExecTree().
|
static |
Definition at line 23 of file COM_compositor.cc.
References BKE_node_preview_init_tree(), blender::compositor::COM_PREVIEW_SIZE, float(), RenderData::xsch, and RenderData::ysch.
Referenced by COM_execute().
struct { ... } g_compositor |
Referenced by COM_deinitialize(), and COM_execute().
bool is_initialized = false |
Definition at line 16 of file COM_compositor.cc.
ThreadMutex mutex |
Definition at line 17 of file COM_compositor.cc.
Referenced by BLI_condition_wait(), BLI_mutex_alloc(), BLI_mutex_end(), BLI_mutex_free(), BLI_mutex_init(), BLI_mutex_lock(), BLI_mutex_trylock(), BLI_mutex_unlock(), BLI_rw_mutex_alloc(), BLI_rw_mutex_end(), BLI_rw_mutex_free(), BLI_rw_mutex_init(), BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), btMutexLock(), btMutexTryLock(), btMutexUnlock(), read_pipe(), InstancesComponent::remove_unused_references(), and stats_background().