Blender V5.0
pipeline.cc File Reference
#include <fmt/format.h>
#include <cerrno>
#include <cstddef>
#include <cstdlib>
#include <cstring>
#include <forward_list>
#include <memory>
#include "DNA_anim_types.h"
#include "DNA_image_types.h"
#include "DNA_node_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
#include "DNA_space_types.h"
#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
#include "BLI_fileops.h"
#include "BLI_listbase.h"
#include "BLI_map.hh"
#include "BLI_mutex.hh"
#include "BLI_rect.h"
#include "BLI_set.hh"
#include "BLI_string_utf8.h"
#include "BLI_threads.h"
#include "BLI_time.h"
#include "BLI_timecode.h"
#include "BLI_vector.hh"
#include "BKE_anim_data.hh"
#include "BKE_animsys.h"
#include "BKE_callbacks.hh"
#include "BKE_camera.h"
#include "BKE_colortools.hh"
#include "BKE_global.hh"
#include "BKE_image.hh"
#include "BKE_image_format.hh"
#include "BKE_image_save.hh"
#include "BKE_layer.hh"
#include "BKE_lib_id.hh"
#include "BKE_lib_remap.hh"
#include "BKE_main.hh"
#include "BKE_mask.h"
#include "BKE_modifier.hh"
#include "BKE_node_legacy_types.hh"
#include "BKE_node_runtime.hh"
#include "BKE_pointcache.h"
#include "BKE_report.hh"
#include "BKE_scene.hh"
#include "BKE_sound.h"
#include "NOD_composite.hh"
#include "COM_compositor.hh"
#include "COM_context.hh"
#include "COM_render_context.hh"
#include "DEG_depsgraph.hh"
#include "DEG_depsgraph_build.hh"
#include "DEG_depsgraph_debug.hh"
#include "DEG_depsgraph_query.hh"
#include "IMB_colormanagement.hh"
#include "IMB_imbuf.hh"
#include "IMB_imbuf_types.hh"
#include "IMB_metadata.hh"
#include "MOV_write.hh"
#include "RE_engine.h"
#include "RE_pipeline.h"
#include "RE_texture.h"
#include "SEQ_relations.hh"
#include "SEQ_render.hh"
#include "GPU_capabilities.hh"
#include "GPU_context.hh"
#include "WM_api.hh"
#include "wm_window.hh"
#include "pipeline.hh"
#include "render_result.h"
#include "render_types.h"
#include "CLG_log.h"

Go to the source code of this file.

Functions

Callbacks
static void render_callback_exec_string (Render *re, Main *bmain, eCbEvent evt, const char *str)
static void render_callback_exec_id (Render *re, Main *bmain, ID *id, eCbEvent evt)
Allocation & Free
static bool do_write_image_or_movie (Render *re, Main *bmain, Scene *scene, const int totvideos, const char *filepath_override)
static void result_rcti_nothing (void *, RenderResult *, rcti *)
static void current_scene_nothing (void *, Scene *)
static void stats_nothing (void *, RenderStats *)
static void float_nothing (void *, float)
static bool default_break (void *)
static void stats_background (void *, RenderStats *rs)
void RE_ReferenceRenderResult (RenderResult *rr)
void RE_FreeRenderResult (RenderResult *rr)
ImBufRE_RenderLayerGetPassImBuf (RenderLayer *rl, const char *name, const char *viewname)
floatRE_RenderLayerGetPass (RenderLayer *rl, const char *name, const char *viewname)
RenderLayerRE_GetRenderLayer (RenderResult *rr, const char *name)
bool RE_HasSingleLayer (Render *re)
RenderResultRE_MultilayerConvert (ExrHandle *exrhandle, const char *colorspace, bool predivide, int rectx, int recty)
RenderLayerrender_get_single_layer (Render *re, RenderResult *rr)
static bool render_scene_has_layers_to_render (Scene *scene, ViewLayer *single_layer)
Public Render API
RenderRE_GetRender (const void *owner)
RenderResultRE_AcquireResultRead (Render *re)
RenderResultRE_AcquireResultWrite (Render *re)
void RE_ClearResult (Render *re)
void RE_SwapResult (Render *re, RenderResult **rr)
void RE_ReleaseResult (Render *re)
SceneRE_GetScene (Render *re)
void RE_SetScene (Render *re, Scene *sce)
void RE_AcquireResultImageViews (Render *re, RenderResult *rr)
void RE_ReleaseResultImageViews (Render *re, RenderResult *rr)
void RE_AcquireResultImage (Render *re, RenderResult *rr, const int view_id)
void RE_ReleaseResultImage (Render *re)
void RE_ResultGet32 (Render *re, uint *rect)
bool RE_ResultIsMultiView (RenderResult *rr)
RenderStatsRE_GetStats (Render *re)
RenderRE_NewRender (const void *owner)
ViewRenderRE_NewViewRender (RenderEngineType *engine_type)
RenderRE_GetSceneRender (const Scene *scene)
RenderRE_NewSceneRender (const Scene *scene)
RenderRE_NewInteractiveCompositorRender (const Scene *scene)
void RE_FreeRender (Render *re)
void RE_FreeViewRender (ViewRender *view_render)
void RE_FreeAllRender ()
void RE_FreeInteractiveCompositorRenders ()
void RE_FreeAllRenderResults ()
void RE_FreeAllPersistentData ()
static void re_gpu_texture_caches_free (Render *re)
void RE_FreeGPUTextureCaches ()
void RE_FreeUnusedGPUResources ()
static void re_free_persistent_data (Render *re)
void RE_FreePersistentData (const Scene *scene)
Initialize State
static void re_init_resolution (Render *re, Render *source, int winx, int winy, const rcti *disprect)
void render_copy_renderdata (RenderData *to, RenderData *from)
void RE_InitState (Render *re, Render *source, RenderData *rd, ListBase *, ViewLayer *single_layer, int winx, int winy, const rcti *disprect)
void RE_display_update_cb (Render *re, void *handle, void(*f)(void *handle, RenderResult *rr, rcti *rect))
void RE_current_scene_update_cb (Render *re, void *handle, void(*f)(void *handle, Scene *scene))
void RE_stats_draw_cb (Render *re, void *handle, void(*f)(void *handle, RenderStats *rs))
void RE_progress_cb (Render *re, void *handle, void(*f)(void *handle, float))
void RE_draw_lock_cb (Render *re, void *handle, void(*f)(void *handle, bool lock))
void RE_test_break_cb (Render *re, void *handle, bool(*f)(void *handle))
void RE_prepare_viewlayer_cb (Render *re, void *handle, bool(*f)(void *handle, ViewLayer *vl, Depsgraph *depsgraph))
Display and GPU context
void RE_display_init (Render *re)
void RE_display_ensure_gpu_context (Render *re)
void RE_display_share (Render *re, const Render *parent_re)
void RE_display_free (Render *re)
void * RE_system_gpu_context_get (Render *re)
void * RE_blender_gpu_context_ensure (Render *re)
Render & Composite Scenes (Implementation & Public API)

Main high-level functions defined here are:

static void render_result_disprect_to_full_resolution (Render *re)
static void render_result_uncrop (Render *re)
static void do_render_engine (Render *re)
static void do_render_compositor_scene (Render *re, Scene *sce, int cfra)
static Sceneget_scene_referenced_by_node (const bNode *node)
static bool compositor_needs_render (Scene *scene)
static bool node_tree_has_group_output (const bNodeTree *node_tree)
static void do_render_compositor_scenes (Render *re)
static void render_compositor_stats (void *arg, const char *str)
static void do_render_compositor (Render *re)
static void renderresult_set_passes_metadata (Render *re)
static void renderresult_stampinfo (Render *re)
bool RE_seq_render_active (Scene *scene, RenderData *rd)
static bool seq_result_needs_float (const ImageFormatData &im_format)
static ImBufseq_process_render_image (ImBuf *src, const ImageFormatData &im_format, const Scene *scene)
static void do_render_sequencer (Render *re)
static void do_render_full_pipeline (Render *re)
static bool check_valid_compositing_camera (Scene *scene, Object *camera_override, ReportList *reports)
static bool check_valid_camera_multiview (Scene *scene, Object *camera, ReportList *reports)
static int check_valid_camera (Scene *scene, Object *camera_override, ReportList *reports)
static bool node_tree_has_file_output (const bNodeTree *node_tree)
static bool scene_has_compositor_output (Scene *scene)
static bool is_compositing_possible_on_gpu (Scene *scene, ReportList *reports)
bool RE_is_rendering_allowed (Scene *scene, ViewLayer *single_layer, Object *camera_override, ReportList *reports)
static void update_physics_cache (Render *re, Scene *scene, ViewLayer *view_layer, const bool)
void RE_SetActiveRenderView (Render *re, const char *viewname)
const char * RE_GetActiveRenderView (Render *re)
static bool render_init_from_main (Render *re, const RenderData *rd, Main *bmain, Scene *scene, ViewLayer *single_layer, Object *camera_override, const bool anim, const bool anim_init)
void RE_SetReports (Render *re, ReportList *reports)
static void render_update_depsgraph (Render *re)
static void render_init_depsgraph (Render *re)
static void render_pipeline_free (Render *re)
void RE_RenderFrame (Render *re, Main *bmain, Scene *scene, ViewLayer *single_layer, Object *camera_override, const int frame, const float subframe, const bool write_still)
Read/Write Render Result (Images & Movies)
bool RE_WriteRenderViewsMovie (ReportList *reports, RenderResult *rr, Scene *scene, RenderData *rd, MovieWriter **movie_writers, const int totvideos, bool preview)
static void get_videos_dimensions (const Render *re, const RenderData *rd, const ImageFormatData *imf, size_t *r_width, size_t *r_height)
static void re_movie_free_all (Render *re)
static void touch_file (const char *filepath)
void RE_RenderAnim (Render *re, Main *bmain, Scene *scene, ViewLayer *single_layer, Object *camera_override, int sfra, int efra, int tfra)
void RE_PreviewRender (Render *re, Main *bmain, Scene *sce)
bool RE_ReadRenderResult (Scene *scene, Scene *scenode)
void RE_layer_load_from_file (RenderLayer *layer, ReportList *reports, const char *filepath, int x, int y)
void RE_result_load_from_file (RenderResult *result, ReportList *reports, const char *filepath)
bool RE_layers_have_name (RenderResult *result)
bool RE_passes_have_name (RenderLayer *rl)
RenderPassRE_pass_find_by_name (RenderLayer *rl, const char *name, const char *viewname)
RenderPassRE_create_gp_pass (RenderResult *rr, const char *layername, const char *viewname)
Miscellaneous Public Render API
bool RE_allow_render_generic_object (Object *ob)
void RE_init_threadcount (Render *re)

Variables

static CLG_LogRef LOG = {"render"}
Globals
struct { 
   std::forward_list< Render * >   render_list 
   blender::Map< const void *, Render * >   interactive_compositor_renders 
RenderGlobal

Function Documentation

◆ check_valid_camera()

◆ check_valid_camera_multiview()

◆ check_valid_compositing_camera()

◆ compositor_needs_render()

bool compositor_needs_render ( Scene * scene)
static

◆ current_scene_nothing()

void current_scene_nothing ( void * ,
Scene *  )
static

Definition at line 182 of file source/blender/render/intern/pipeline.cc.

Referenced by RE_display_init().

◆ default_break()

bool default_break ( void * )
static

Definition at line 185 of file source/blender/render/intern/pipeline.cc.

References G.

Referenced by RE_display_init().

◆ do_render_compositor()

◆ do_render_compositor_scene()

◆ do_render_compositor_scenes()

◆ do_render_engine()

◆ do_render_full_pipeline()

◆ do_render_sequencer()

◆ do_write_image_or_movie()

◆ float_nothing()

void float_nothing ( void * ,
float  )
static

Definition at line 184 of file source/blender/render/intern/pipeline.cc.

Referenced by RE_display_init().

◆ get_scene_referenced_by_node()

◆ get_videos_dimensions()

void get_videos_dimensions ( const Render * re,
const RenderData * rd,
const ImageFormatData * imf,
size_t * r_width,
size_t * r_height )
static

◆ is_compositing_possible_on_gpu()

bool is_compositing_possible_on_gpu ( Scene * scene,
ReportList * reports )
static

◆ node_tree_has_file_output()

bool node_tree_has_file_output ( const bNodeTree * node_tree)
static

◆ node_tree_has_group_output()

bool node_tree_has_group_output ( const bNodeTree * node_tree)
static

Returns true if the node tree has a group output node.

Definition at line 1158 of file source/blender/render/intern/pipeline.cc.

References NODE_DO_OUTPUT.

Referenced by do_render_compositor(), and scene_has_compositor_output().

◆ RE_AcquireResultImage()

◆ RE_AcquireResultImageViews()

◆ RE_AcquireResultRead()

◆ RE_AcquireResultWrite()

◆ RE_allow_render_generic_object()

bool RE_allow_render_generic_object ( Object * ob)

◆ RE_blender_gpu_context_ensure()

◆ RE_ClearResult()

◆ RE_create_gp_pass()

◆ RE_current_scene_update_cb()

void RE_current_scene_update_cb ( Render * re,
void * handle,
void(* )(void *handle, Scene *scene) )

Definition at line 893 of file source/blender/render/intern/pipeline.cc.

References BaseRender::display.

Referenced by screen_render_invoke().

◆ RE_display_ensure_gpu_context()

void RE_display_ensure_gpu_context ( Render * re)

◆ RE_display_free()

◆ RE_display_init()

◆ RE_display_share()

void RE_display_share ( Render * re,
const Render * parent_re )

◆ RE_display_update_cb()

void RE_display_update_cb ( Render * re,
void * handle,
void(* )(void *handle, RenderResult *rr, rcti *rect) )

◆ RE_draw_lock_cb()

void RE_draw_lock_cb ( Render * re,
void * handle,
void(* )(void *handle, bool lock) )

Definition at line 909 of file source/blender/render/intern/pipeline.cc.

References BaseRender::display, and lock.

Referenced by screen_render_exec(), and screen_render_invoke().

◆ re_free_persistent_data()

void re_free_persistent_data ( Render * re)
static

◆ RE_FreeAllPersistentData()

void RE_FreeAllPersistentData ( void )

On file load or changes engines, free persistent render data. Assumes no engines are currently rendering.

Definition at line 591 of file source/blender/render/intern/pipeline.cc.

References BLI_assert, BaseRender::engine, RenderEngine::flag, RE_engine_free(), RE_ENGINE_RENDERING, and RenderGlobal.

Referenced by setup_app_data(), and wm_set_working_color_space_exec().

◆ RE_FreeAllRender()

void RE_FreeAllRender ( void )

Only called on exit.

Definition at line 557 of file source/blender/render/intern/pipeline.cc.

References FRS_exit(), RE_FreeInteractiveCompositorRenders(), RE_FreeRender(), and RenderGlobal.

Referenced by WM_exit_ex().

◆ RE_FreeAllRenderResults()

void RE_FreeAllRenderResults ( void )

◆ RE_FreeGPUTextureCaches()

void RE_FreeGPUTextureCaches ( void )

Free cached GPU textures to reduce memory usage.

Definition at line 620 of file source/blender/render/intern/pipeline.cc.

References re_gpu_texture_caches_free(), and RenderGlobal.

Referenced by RE_RenderAnim(), and RE_RenderFrame().

◆ RE_FreeInteractiveCompositorRenders()

void RE_FreeInteractiveCompositorRenders ( void )

On file load, free all interactive compositor renders.

Definition at line 571 of file source/blender/render/intern/pipeline.cc.

References RE_FreeRender(), and RenderGlobal.

Referenced by RE_FreeAllRender(), setup_app_data(), and wm_set_working_color_space_exec().

◆ RE_FreePersistentData()

void RE_FreePersistentData ( const Scene * scene)

◆ RE_FreeRender()

void RE_FreeRender ( struct Render * re)

Use free render as signal to do everything over (previews).

Only call this while you know it will remove the link too.

Definition at line 545 of file source/blender/render/intern/pipeline.cc.

References RenderGlobal.

Referenced by FRS_do_stroke_rendering(), RE_FreeAllRender(), RE_FreeInteractiveCompositorRenders(), and blender::ed::space_node::NestedTreePreviews::~NestedTreePreviews().

◆ RE_FreeRenderResult()

◆ RE_FreeUnusedGPUResources()

◆ RE_FreeViewRender()

void RE_FreeViewRender ( ViewRender * view_render)

Definition at line 552 of file source/blender/render/intern/pipeline.cc.

Referenced by DRW_engine_external_free().

◆ RE_GetActiveRenderView()

◆ RE_GetRender()

Render * RE_GetRender ( const void * owner)

◆ RE_GetRenderLayer()

◆ RE_GetScene()

Scene * RE_GetScene ( Render * re)

Definition at line 352 of file source/blender/render/intern/pipeline.cc.

References Render::scene.

◆ RE_GetSceneRender()

◆ RE_GetStats()

RenderStats * RE_GetStats ( Render * re)

Definition at line 493 of file source/blender/render/intern/pipeline.cc.

References Render::i.

Referenced by stampdata().

◆ re_gpu_texture_caches_free()

◆ RE_HasSingleLayer()

bool RE_HasSingleLayer ( Render * re)

◆ re_init_resolution()

◆ RE_init_threadcount()

void RE_init_threadcount ( Render * re)

Set the render threads based on the command-line and auto-threads setting.

Definition at line 2883 of file source/blender/render/intern/pipeline.cc.

References BKE_render_num_threads(), Render::r, and RenderData::threads.

Referenced by RE_InitState().

◆ RE_InitState()

◆ RE_is_rendering_allowed()

◆ RE_layer_load_from_file()

void RE_layer_load_from_file ( struct RenderLayer * layer,
struct ReportList * reports,
const char * filepath,
int x,
int y )

◆ RE_layers_have_name()

bool RE_layers_have_name ( struct RenderResult * result)

Used in the interface to decide whether to show layers or passes.

Definition at line 2803 of file source/blender/render/intern/pipeline.cc.

References BLI_listbase_count_at_most(), and result.

Referenced by uiblock_layer_pass_buttons().

◆ re_movie_free_all()

◆ RE_MultilayerConvert()

RenderResult * RE_MultilayerConvert ( ExrHandle * exrhandle,
const char * colorspace,
bool predivide,
int rectx,
int recty )

◆ RE_NewInteractiveCompositorRender()

Render * RE_NewInteractiveCompositorRender ( const Scene * scene)

◆ RE_NewRender()

Render * RE_NewRender ( const void * owner)

The owner is a unique identifier for the render, either an original scene datablock for regular renders, or an area for preview renders. Calling a new render with an existing owner frees the existing render.

Definition at line 498 of file source/blender/render/intern/pipeline.cc.

References Render::owner, RE_display_init(), RE_GetRender(), and RenderGlobal.

Referenced by blender::ed::space_node::preview_render(), RE_NewSceneRender(), and shader_preview_render().

◆ RE_NewSceneRender()

◆ RE_NewViewRender()

ViewRender * RE_NewViewRender ( RenderEngineType * engine_type)

◆ RE_pass_find_by_name()

◆ RE_passes_have_name()

bool RE_passes_have_name ( RenderLayer * rl)

◆ RE_prepare_viewlayer_cb()

void RE_prepare_viewlayer_cb ( Render * re,
void * handle,
bool(* )(void *handle, ViewLayer *vl, Depsgraph *depsgraph) )

◆ RE_PreviewRender()

◆ RE_progress_cb()

void RE_progress_cb ( Render * re,
void * handle,
void(* )(void *handle, float) )

◆ RE_ReadRenderResult()

◆ RE_ReferenceRenderResult()

void RE_ReferenceRenderResult ( RenderResult * rr)

◆ RE_ReleaseResult()

◆ RE_ReleaseResultImage()

◆ RE_ReleaseResultImageViews()

void RE_ReleaseResultImageViews ( struct Render * re,
struct RenderResult * rr )

◆ RE_RenderAnim()

void RE_RenderAnim ( struct Render * re,
struct Main * bmain,
struct Scene * scene,
struct ViewLayer * single_layer,
struct Object * camera_override,
int sfra,
int efra,
int tfra )

A version of RE_RenderFrame that saves images to disk.

Definition at line 2345 of file source/blender/render/intern/pipeline.cc.

References ADT_RECALC_ALL, Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_add_template_variables_for_render_path(), BKE_add_template_variables_general(), BKE_animdata_from_id(), BKE_animsys_eval_context_construct(), BKE_animsys_evaluate_animdata(), BKE_CB_EVT_RENDER_CANCEL, BKE_CB_EVT_RENDER_COMPLETE, BKE_CB_EVT_RENDER_INIT, BKE_CB_EVT_RENDER_POST, BKE_CB_EVT_RENDER_PRE, BKE_CB_EVT_RENDER_WRITE, BKE_image_format_free(), BKE_image_format_init_for_write(), BKE_image_path_from_imformat(), BKE_imtype_is_movie(), BKE_main_blendfile_path(), BKE_report(), BKE_report_path_template_errors(), BKE_scene_ctime_get(), BKE_scene_multiview_filepath_get(), BKE_scene_multiview_is_render_view_active(), BKE_scene_multiview_num_videos_get(), BKE_scene_multiview_view_id_suffix_get(), BKE_sound_reset_scene_specs(), BLI_delete(), BLI_exists(), BLI_file_size(), RenderData::cfra, CLOG_INFO, DEG_graph_id_tag_update(), BaseRender::display, do_render_full_pipeline(), do_write_image_or_movie(), RenderData::engine, FILE_MAX, Render::flag, RenderEngineType::flag, G, get_videos_dimensions(), i, Scene::id, ID_RECALC_AUDIO_MUTE, ImageFormatData::imtype, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), LISTBASE_FOREACH, LOG, Render::main, RenderData::mode, MOV_write_begin(), Render::movie_writers, RenderData::pic, Render::pipeline_depsgraph, Render::pipeline_scene_eval, Render::r, Scene::r, R_ANIMATION, R_EXTENSION, R_IMF_VIEWS_INDIVIDUAL, R_MULTIVIEW, R_NO_OVERWRITE, R_SKIP_WRITE, R_TOUCH, RE_engines_find(), RE_FreeGPUTextureCaches(), re_movie_free_all(), RE_USE_NO_IMAGE_SAVE, RE_USE_POSTPROCESS, render_callback_exec_id(), render_init_depsgraph(), render_init_from_main(), render_pipeline_free(), render_update_depsgraph(), Render::reports, Vector< T, InlineBufferCapacity, Allocator >::reserve(), RPT_ERROR, RPT_INFO, RenderData::scemode, Render::scene, RenderData::subframe, touch_file(), RenderData::views, and ImageFormatData::views_format.

Referenced by arg_handle_render_animation(), arg_handle_render_frame(), render_startjob(), and screen_render_exec().

◆ RE_RenderFrame()

void RE_RenderFrame ( struct Render * re,
struct Main * bmain,
struct Scene * scene,
struct ViewLayer * single_layer,
struct Object * camera_override,
int frame,
float subframe,
bool write_still )

◆ RE_RenderLayerGetPass()

float * RE_RenderLayerGetPass ( RenderLayer * rl,
const char * name,
const char * viewname )

◆ RE_RenderLayerGetPassImBuf()

ImBuf * RE_RenderLayerGetPassImBuf ( RenderLayer * rl,
const char * name,
const char * viewname )

◆ RE_result_load_from_file()

void RE_result_load_from_file ( RenderResult * result,
ReportList * reports,
const char * filepath )

◆ RE_ResultGet32()

◆ RE_ResultIsMultiView()

bool RE_ResultIsMultiView ( RenderResult * rr)

◆ RE_seq_render_active()

◆ RE_SetActiveRenderView()

◆ RE_SetReports()

◆ RE_SetScene()

void RE_SetScene ( Render * re,
Scene * sce )

Definition at line 360 of file source/blender/render/intern/pipeline.cc.

References Render::scene.

Referenced by shader_preview_texture().

◆ RE_stats_draw_cb()

void RE_stats_draw_cb ( Render * re,
void * handle,
void(* )(void *handle, RenderStats *rs) )

Definition at line 898 of file source/blender/render/intern/pipeline.cc.

References BaseRender::display.

Referenced by screen_render_invoke().

◆ RE_SwapResult()

void RE_SwapResult ( Render * re,
RenderResult ** rr )

◆ RE_system_gpu_context_get()

◆ RE_test_break_cb()

◆ RE_WriteRenderViewsMovie()

◆ render_callback_exec_id()

void render_callback_exec_id ( Render * re,
Main * bmain,
ID * id,
eCbEvent evt )
static

◆ render_callback_exec_string()

void render_callback_exec_string ( Render * re,
Main * bmain,
eCbEvent evt,
const char * str )
static

◆ render_compositor_stats()

void render_compositor_stats ( void * arg,
const char * str )
static

Definition at line 1216 of file source/blender/render/intern/pipeline.cc.

References BaseRender::display, i, Render::i, and str.

Referenced by do_render_compositor().

◆ render_copy_renderdata()

◆ render_get_single_layer()

◆ render_init_depsgraph()

◆ render_init_from_main()

◆ render_pipeline_free()

◆ render_result_disprect_to_full_resolution()

void render_result_disprect_to_full_resolution ( Render * re)
static

◆ render_result_uncrop()

◆ render_scene_has_layers_to_render()

bool render_scene_has_layers_to_render ( Scene * scene,
ViewLayer * single_layer )
static

◆ render_update_depsgraph()

◆ renderresult_set_passes_metadata()

◆ renderresult_stampinfo()

◆ result_rcti_nothing()

void result_rcti_nothing ( void * ,
RenderResult * ,
rcti *  )
static

Definition at line 181 of file source/blender/render/intern/pipeline.cc.

Referenced by RE_display_init().

◆ scene_has_compositor_output()

bool scene_has_compositor_output ( Scene * scene)
static

◆ seq_process_render_image()

◆ seq_result_needs_float()

bool seq_result_needs_float ( const ImageFormatData & im_format)
static

◆ stats_background()

void stats_background ( void * ,
RenderStats * rs )
static

◆ stats_nothing()

void stats_nothing ( void * ,
RenderStats *  )
static

Definition at line 183 of file source/blender/render/intern/pipeline.cc.

Referenced by RE_display_init().

◆ touch_file()

void touch_file ( const char * filepath)
static

◆ update_physics_cache()

Variable Documentation

◆ interactive_compositor_renders

blender::Map<const void *, Render *> interactive_compositor_renders

Special renders that can be used for interactive compositing, each scene has its own render, keyed with the scene name returned from #scene_render_name_get and matches the same name in render_list. Those renders are separate from standard renders because the GPU context can't be bound for compositing and rendering at the same time, so those renders are essentially used to get a persistent dedicated GPU context to interactive compositor execution.

Definition at line 146 of file source/blender/render/intern/pipeline.cc.

◆ LOG

CLG_LogRef LOG = {"render"}
static

Definition at line 104 of file source/blender/render/intern/pipeline.cc.

◆ render_list

std::forward_list<Render *> render_list

Definition at line 138 of file source/blender/render/intern/pipeline.cc.

◆ [struct]