Blender V4.3
pipeline.cc File Reference
#include <fmt/format.h>
#include <cerrno>
#include <climits>
#include <cmath>
#include <cstddef>
#include <cstdlib>
#include <cstring>
#include <forward_list>
#include "DNA_anim_types.h"
#include "DNA_collection_types.h"
#include "DNA_image_types.h"
#include "DNA_node_types.h"
#include "DNA_object_types.h"
#include "DNA_particle_types.h"
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
#include "DNA_space_types.h"
#include "DNA_userdef_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_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_runtime.hh"
#include "BKE_pointcache.h"
#include "BKE_report.hh"
#include "BKE_scene.hh"
#include "BKE_sound.h"
#include "BKE_writemovie.hh"
#include "NOD_composite.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 "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, bMovieHandle *mh, 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)
 
floatRE_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 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, bMovieHandle *mh, void **movie_ctx_arr, 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, bMovieHandle *mh, int totvideos)
 
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)
 
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_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()

static int check_compositor_output ( Scene * scene)
static

◆ check_valid_camera()

◆ check_valid_camera_multiview()

◆ check_valid_compositing_camera()

static bool check_valid_compositing_camera ( Scene * scene,
Object * camera_override,
ReportList * reports )
static

◆ compositor_needs_render()

static bool compositor_needs_render ( Scene * scene)
static

◆ current_scene_nothing()

static void current_scene_nothing ( void * ,
Scene *  )
static

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

Referenced by RE_InitRenderCB().

◆ default_break()

static bool default_break ( void * )
static

Definition at line 189 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()

static void float_nothing ( void * ,
float  )
static

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

Referenced by RE_InitRenderCB().

◆ get_scene_referenced_by_node()

static Scene * get_scene_referenced_by_node ( const bNode * node)
static

◆ get_videos_dimensions()

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

◆ is_compositing_possible_on_gpu()

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

◆ node_tree_has_any_compositor_output()

static bool node_tree_has_any_compositor_output ( const bNodeTree * ntree)
static

◆ node_tree_has_composite_output()

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

References ELEM, NODE_CUSTOM_GROUP, NODE_DO_OUTPUT, NODE_GROUP, NODE_MUTED, node_tree, and node_tree_has_composite_output().

Referenced by do_render_compositor(), and node_tree_has_composite_output().

◆ prepare_viewlayer_nothing()

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

Definition at line 181 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 934 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()

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

References BLI_assert, 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 615 of file source/blender/render/intern/pipeline.cc.

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

Referenced by WM_exit_ex().

◆ RE_FreeAllRenderResults()

void RE_FreeAllRenderResults ( void )

On file load, free render results.

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

References render_result_free(), and RenderGlobal.

Referenced by setup_app_data().

◆ RE_FreeGPUTextureCaches()

void RE_FreeGPUTextureCaches ( void )

Free cached GPU textures to reduce memory usage.

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

References re_gpu_texture_caches_free(), and RenderGlobal.

Referenced by RE_RenderAnim(), and RE_RenderFrame().

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

References RenderGlobal.

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

◆ RE_FreeRenderResult()

◆ RE_FreeUnusedGPUResources()

◆ RE_FreeViewRender()

void RE_FreeViewRender ( ViewRender * view_render)

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

References Render::scene.

◆ RE_GetSceneRender()

◆ RE_GetStats()

RenderStats * RE_GetStats ( Render * re)

Definition at line 511 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 2914 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()

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

References BLI_listbase_count_at_most().

Referenced by uiblock_layer_pass_buttons().

◆ re_movie_free_all()

static void re_movie_free_all ( Render * re,
bMovieHandle * mh,
int totvideos )
static

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

References CHECK_PASS.

◆ 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, 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_path_from_imformat(), BKE_imtype_is_movie(), BKE_main_blendfile_path(), BKE_movie_handle_get(), BKE_report(), 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, bMovieHandle::context_create, 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(), Scene::id, ID_RECALC_AUDIO_MUTE, RenderData::im_format, ImageFormatData::imtype, is_movie(), LISTBASE_FOREACH, Render::main, RenderData::mode, Render::movie_ctx_arr, RenderData::pic, Render::pipeline_depsgraph, Render::pipeline_scene_eval, printf, Render::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, RPT_ERROR, RPT_INFO, RenderData::scemode, Render::scene, bMovieHandle::start_movie, RenderData::subframe, Render::tbh, Render::test_break_cb, 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_seq_render_active()

◆ RE_SetActiveRenderView()

◆ RE_SetReports()

◆ RE_SetScene()

void RE_SetScene ( Render * re,
Scene * sce )

Definition at line 388 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 956 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()

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

◆ render_callback_exec_string()

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

◆ render_compositor_stats()

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

◆ render_copy_renderdata()

void render_copy_renderdata ( RenderData * to,
RenderData * from )

◆ render_get_single_layer()

◆ render_init_depsgraph()

◆ render_init_from_main()

◆ render_pipeline_free()

◆ render_result_disprect_to_full_resolution()

static void render_result_disprect_to_full_resolution ( Render * re)
static

◆ render_result_uncrop()

◆ render_scene_has_layers_to_render()

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

◆ render_update_depsgraph()

◆ renderresult_set_passes_metadata()

◆ renderresult_stampinfo()

◆ result_nothing()

static void result_nothing ( void * ,
RenderResult *  )
static

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

Referenced by RE_InitRenderCB().

◆ result_rcti_nothing()

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

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

Referenced by RE_InitRenderCB().

◆ scene_render_name_get()

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

◆ stats_background()

◆ stats_nothing()

static void stats_nothing ( void * ,
RenderStats *  )
static

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

◆ render_list

std::forward_list<Render *> render_list

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

◆ [struct]