Blender  V3.3
Functions | Variables
COM_compositor.cc File Reference
#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
 

Function Documentation

◆ COM_deinitialize()

void COM_deinitialize ( void  )

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().

◆ COM_execute()

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)

Parameters
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 rendering only Composite & the File output node will be calculated
See also
NodeOperation.is_output_program(int rendering) of the specific operations
- during editing all output nodes will be calculated
NodeOperation.is_output_program(int rendering) of the specific operations
- 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.
bNodeTree.edit_quality
bNodeTree.render_quality
- 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().

◆ compositor_init_node_previews()

static void compositor_init_node_previews ( const RenderData render_data,
bNodeTree node_tree 
)
static

◆ compositor_reset_node_tree_status()

static void compositor_reset_node_tree_status ( bNodeTree node_tree)
static

Definition at line 42 of file COM_compositor.cc.

References IFACE_.

Referenced by COM_execute().

Variable Documentation

◆ 

struct { ... } g_compositor

Referenced by COM_deinitialize(), and COM_execute().

◆ is_initialized

bool is_initialized = false

Definition at line 16 of file COM_compositor.cc.

◆ mutex

ThreadMutex mutex