Blender V5.0
COM_compositor.cc File Reference
#include "BLI_mutex.hh"
#include "BLT_translation.hh"
#include "BKE_node.hh"
#include "BKE_node_runtime.hh"
#include "COM_compositor.hh"
#include "RE_compositor.hh"

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 (Render *render, RenderData *render_data, Scene *scene, bNodeTree *node_tree, const char *view_name, blender::compositor::RenderContext *render_context, blender::compositor::Profiler *profiler, blender::compositor::OutputTypes needed_outputs)
 The main method that is used to execute the compositor tree. It can be executed during editing (blenkernel/node.cc) or rendering (renderer/pipeline.cc).
void COM_deinitialize ()
 Deinitialize the compositor caches and allocated memory. Use COM_clear_caches to only free the caches.

Variables

static constexpr float COM_PREVIEW_SIZE = 140.0f
static blender::Mutex g_compositor_mutex

Function Documentation

◆ COM_deinitialize()

void COM_deinitialize ( )

Deinitialize the compositor caches and allocated memory. Use COM_clear_caches to only free the caches.

Definition at line 78 of file COM_compositor.cc.

Referenced by WM_exit_ex().

◆ COM_execute()

void COM_execute ( Render * render,
RenderData * render_data,
Scene * scene,
bNodeTree * node_tree,
const char * view_name,
blender::compositor::RenderContext * render_context,
blender::compositor::Profiler * profiler,
blender::compositor::OutputTypes needed_outputs )

The main method that is used to execute the compositor tree. It can be executed during editing (blenkernel/node.cc) or rendering (renderer/pipeline.cc).

Parameters
RenderingRender instance for GPU context.
render_dataRender data for this composite, this won't always belong to a scene.
node_treeReference to the compositor editing tree
renderingThis 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(bool rendering) of the specific operations
- during editing all output nodes will be calculated
NodeOperation.is_output_program(bool 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.

- 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 compositor_init_node_previews(), compositor_reset_node_tree_status(), g_compositor_mutex, lock, RE_compositor_execute(), and bNodeTree::runtime.

Referenced by blender::ed::space_node::compo_startjob(), and do_render_compositor().

◆ compositor_init_node_previews()

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

◆ compositor_reset_node_tree_status()

void compositor_reset_node_tree_status ( bNodeTree * node_tree)
static

Definition at line 42 of file COM_compositor.cc.

References IFACE_, and bNodeTree::runtime.

Referenced by COM_execute().

Variable Documentation

◆ COM_PREVIEW_SIZE

float COM_PREVIEW_SIZE = 140.0f
staticconstexpr

Definition at line 16 of file COM_compositor.cc.

Referenced by compositor_init_node_previews().

◆ g_compositor_mutex

blender::Mutex g_compositor_mutex
static

Definition at line 18 of file COM_compositor.cc.

Referenced by COM_execute().