Blender V4.5
pipeline.cc File Reference
#include <fmt/format.h>
#include <cerrno>
#include <cstddef>
#include <cstdlib>
#include <cstring>
#include <forward_list>
#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.h"
#include "BLI_threads.h"
#include "BLI_time.h"
#include "BLI_timecode.h"
#include "BLI_vector.hh"
#include "BLT_translation.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"

Go to the source code of this file.

Macros

#define CHECK_PASS(NAME)

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_nothing (void *, RenderResult *)
static void result_rcti_nothing (void *, RenderResult *, rcti *)
static void current_scene_nothing (void *, Scene *)
static bool prepare_viewlayer_nothing (void *, ViewLayer *, Depsgraph *)
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)
float * RE_RenderLayerGetPass (RenderLayer *rl, const char *name, const char *viewname)
RenderLayerRE_GetRenderLayer (RenderResult *rr, const char *name)
bool RE_HasSingleLayer (Render *re)
RenderResultRE_MultilayerConvert (void *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)
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_init_cb (Render *re, void *handle, void(*f)(void *handle, RenderResult *rr))
void RE_display_clear_cb (Render *re, void *handle, void(*f)(void *handle, RenderResult *rr))
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))
GPU Context
void RE_system_gpu_context_ensure (Render *re)
void RE_system_gpu_context_free (Render *re)
void * RE_system_gpu_context_get (Render *re)
void * RE_blender_gpu_context_ensure (Render *re)
void RE_blender_gpu_context_free (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_composite_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_any_compositor_output (const bNodeTree *ntree)
static int check_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, size_t *r_width, size_t *r_height)
static void re_movie_free_all (Render *re)
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_pass_find_by_type (RenderLayer *rl, int passtype, 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

Globals
struct { 
   std::forward_list< Render * >   render_list 
   blender::Map< std::string, Render * >   interactive_compositor_renders 
RenderGlobal

Public Render API

#define MAX_SCENE_RENDER_NAME   (MAX_ID_NAME + 1024 + 2)
RenderRE_GetRender (const char *name)
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 char *name)
ViewRenderRE_NewViewRender (RenderEngineType *engine_type)
static void scene_render_name_get (const Scene *scene, const size_t max_size, char *render_name)
RenderRE_GetSceneRender (const Scene *scene)
RenderRE_NewSceneRender (const Scene *scene)
RenderRE_NewInteractiveCompositorRender (const Scene *scene)
void RE_InitRenderCB (Render *re)
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)

Macro Definition Documentation

◆ CHECK_PASS

#define CHECK_PASS ( NAME)
Value:
if (passtype == SCE_PASS_##NAME) { \
return RE_pass_find_by_name(rl, RE_PASSNAME_##NAME, viewname); \
} \
((void)0)
RenderPass * RE_pass_find_by_name(RenderLayer *rl, const char *name, const char *viewname)

Referenced by RE_pass_find_by_type().

◆ MAX_SCENE_RENDER_NAME

#define MAX_SCENE_RENDER_NAME   (MAX_ID_NAME + 1024 + 2)

Function Documentation

◆ check_compositor_output()

int check_compositor_output ( Scene * scene)
static

◆ 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 178 of file source/blender/render/intern/pipeline.cc.

Referenced by RE_InitRenderCB().

◆ default_break()

bool default_break ( void * )
static

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

References G.

Referenced by RE_InitRenderCB().

◆ 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 186 of file source/blender/render/intern/pipeline.cc.

Referenced by RE_InitRenderCB().

◆ get_scene_referenced_by_node()

◆ get_videos_dimensions()

void get_videos_dimensions ( const Render * re,
const RenderData * rd,
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_any_compositor_output()

bool node_tree_has_any_compositor_output ( const bNodeTree * ntree)
static

◆ node_tree_has_composite_output()

bool node_tree_has_composite_output ( const bNodeTree * node_tree)
static

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

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

References CMP_NODE_COMPOSITE, NODE_DO_OUTPUT, and node_tree_has_composite_output().

Referenced by do_render_compositor(), and node_tree_has_composite_output().

◆ prepare_viewlayer_nothing()

bool prepare_viewlayer_nothing ( void * ,
ViewLayer * ,
Depsgraph *  )
static

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

Referenced by RE_InitRenderCB().

◆ 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_blender_gpu_context_free()

◆ 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) )

◆ RE_display_clear_cb()

void RE_display_clear_cb ( Render * re,
void * handle,
void(* )(void *handle, RenderResult *rr) )

◆ RE_display_init_cb()

void RE_display_init_cb ( struct Render * re,
void * handle,
void(* )(void *handle, RenderResult *rr) )

Image and movie output has to move to either ImBuf or kernel.

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

References Render::dih, and Render::display_init_cb.

◆ 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) )

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

◆ RE_FreeAllRender()

void RE_FreeAllRender ( void )

Only called on exit.

Definition at line 621 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 684 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 635 of file source/blender/render/intern/pipeline.cc.

References RE_FreeRender(), and RenderGlobal.

Referenced by RE_FreeAllRender(), and setup_app_data().

◆ 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 609 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 616 of file source/blender/render/intern/pipeline.cc.

Referenced by DRW_engine_external_free().

◆ RE_GetActiveRenderView()

◆ RE_GetRender()

Render * RE_GetRender ( const char * name)

◆ RE_GetRenderLayer()

◆ RE_GetScene()

Scene * RE_GetScene ( Render * re)

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

References Render::scene.

◆ RE_GetSceneRender()

◆ RE_GetStats()

RenderStats * RE_GetStats ( Render * re)

Definition at line 517 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 2988 of file source/blender/render/intern/pipeline.cc.

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

Referenced by RE_InitState().

◆ RE_InitRenderCB()

◆ RE_InitState()

void RE_InitState ( struct Render * re,
struct Render * source,
struct RenderData * rd,
struct ListBase * render_layers,
struct ViewLayer * single_layer,
int winx,
int winy,
const rcti * disprect )

◆ 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 2870 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 ( void * exrhandle,
const char * colorspace,
bool predivide,
int rectx,
int recty )

◆ RE_NewInteractiveCompositorRender()

Render * RE_NewInteractiveCompositorRender ( const Scene * scene)

◆ RE_NewRender()

Render * RE_NewRender ( const char * name)

The name is used as identifier, so elsewhere in blender the result can retrieved. Calling a new render with same name, frees automatic existing render.

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

References Render::name, RE_GetRender(), RE_InitRenderCB(), RenderGlobal, and STRNCPY().

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

RenderPass * RE_pass_find_by_type ( struct RenderLayer * rl,
int passtype,
const char * viewname )

Only provided for API compatibility, don't use this in new code!

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

References CHECK_PASS, VECTOR, and Z.

◆ 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 2421 of file source/blender/render/intern/pipeline.cc.

References ADT_RECALC_ALL, Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_animdata_from_id(), BKE_animsys_eval_context_construct(), BKE_animsys_evaluate_animdata(), BKE_build_template_variables_for_render_path(), 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_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_ensure_parent_dir_exists(), BLI_file_size(), BLI_file_touch(), RenderData::cfra, DEG_graph_id_tag_update(), 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, RenderData::im_format, ImageFormatData::imtype, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), LISTBASE_FOREACH, Render::main, RenderData::mode, MOV_write_begin(), Render::movie_writers, RenderData::pic, Render::pipeline_depsgraph, Render::pipeline_scene_eval, printf, 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, Render::tbh, Render::test_break_cb, 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 384 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 968 of file source/blender/render/intern/pipeline.cc.

References Render::sdh, and Render::stats_draw_cb.

Referenced by screen_render_invoke().

◆ RE_SwapResult()

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

◆ RE_system_gpu_context_ensure()

◆ RE_system_gpu_context_free()

◆ 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 1309 of file source/blender/render/intern/pipeline.cc.

References i, Render::i, Render::stats_draw(), 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_nothing()

void result_nothing ( void * ,
RenderResult *  )
static

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

Referenced by RE_InitRenderCB().

◆ result_rcti_nothing()

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

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

Referenced by RE_InitRenderCB().

◆ scene_render_name_get()

void scene_render_name_get ( const Scene * scene,
const size_t max_size,
char * render_name )
static

◆ seq_process_render_image()

◆ seq_result_needs_float()

bool seq_result_needs_float ( const ImageFormatData & im_format)
static

◆ stats_background()

◆ stats_nothing()

void stats_nothing ( void * ,
RenderStats *  )
static

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

Referenced by RE_InitRenderCB().

◆ update_physics_cache()

Variable Documentation

◆ interactive_compositor_renders

blender::Map<std::string, Render *> interactive_compositor_renders

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

◆ render_list

std::forward_list<Render *> render_list

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

◆ [struct]