Blender  V3.3
Macros
pipeline.c File Reference
#include <errno.h>
#include <limits.h>
#include <math.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#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 "MEM_guardedalloc.h"
#include "BLI_fileops.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_path_util.h"
#include "BLI_rect.h"
#include "BLI_string.h"
#include "BLI_threads.h"
#include "BLI_timecode.h"
#include "BLT_translation.h"
#include "BKE_anim_data.h"
#include "BKE_animsys.h"
#include "BKE_callbacks.h"
#include "BKE_camera.h"
#include "BKE_colortools.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_image.h"
#include "BKE_image_format.h"
#include "BKE_image_save.h"
#include "BKE_layer.h"
#include "BKE_lib_id.h"
#include "BKE_lib_remap.h"
#include "BKE_mask.h"
#include "BKE_modifier.h"
#include "BKE_node.h"
#include "BKE_object.h"
#include "BKE_pointcache.h"
#include "BKE_report.h"
#include "BKE_scene.h"
#include "BKE_sound.h"
#include "BKE_writeavi.h"
#include "NOD_composite.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_build.h"
#include "DEG_depsgraph_debug.h"
#include "DEG_depsgraph_query.h"
#include "IMB_colormanagement.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "IMB_metadata.h"
#include "PIL_time.h"
#include "RE_engine.h"
#include "RE_pipeline.h"
#include "RE_texture.h"
#include "SEQ_relations.h"
#include "SEQ_render.h"
#include "../../windowmanager/WM_api.h"
#include "../../windowmanager/wm_window.h"
#include "GPU_context.h"
#include "pipeline.h"
#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_null (Render *re, Main *bmain, eCbEvent evt)
 
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 *name_override)
 
static void result_nothing (void *UNUSED(arg), RenderResult *UNUSED(rr))
 
static void result_rcti_nothing (void *UNUSED(arg), RenderResult *UNUSED(rr), struct rcti *UNUSED(rect))
 
static void current_scene_nothing (void *UNUSED(arg), Scene *UNUSED(scene))
 
static void stats_nothing (void *UNUSED(arg), RenderStats *UNUSED(rs))
 
static void float_nothing (void *UNUSED(arg), float UNUSED(val))
 
static int default_break (void *UNUSED(arg))
 
static void stats_background (void *UNUSED(arg), RenderStats *rs)
 
void RE_FreeRenderResult (RenderResult *rr)
 
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_active_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, rcti *disprect)
 
void render_copy_renderdata (RenderData *to, RenderData *from)
 
void RE_InitState (Render *re, Render *source, RenderData *rd, ListBase *render_layers, ViewLayer *single_layer, int winx, int winy, rcti *disprect)
 
void render_update_anim_renderdata (Render *re, RenderData *rd, ListBase *render_layers)
 
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, int(*f)(void *handle))
 
OpenGL Context
void RE_gl_context_create (Render *re)
 
void RE_gl_context_destroy (Render *re)
 
voidRE_gl_context_get (Render *re)
 
voidRE_gpu_context_get (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 int compositor_needs_render (Scene *sce, int this_scene)
 
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_stampinfo (Render *re)
 
int 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_compositor_output (bNodeTree *ntree)
 
static int check_compositor_output (Scene *scene)
 
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, int UNUSED(anim_init))
 
void RE_SetActiveRenderView (Render *re, const char *viewname)
 
const char * RE_GetActiveRenderView (Render *re)
 
static int render_init_from_main (Render *re, const RenderData *rd, Main *bmain, Scene *scene, ViewLayer *single_layer, Object *camera_override, int anim, int 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 (struct RenderResult *rr)
 
bool RE_passes_have_name (struct 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 {
   ListBase   renderlist
 
RenderGlobal = {{NULL, NULL}}
 

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, unsigned int *rect)
 
void RE_AcquiredResultGet32 (Render *re, RenderResult *result, unsigned int *rect, const int view_id)
 
RenderStatsRE_GetStats (Render *re)
 
RenderRE_NewRender (const char *name)
 
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)
 
void RE_InitRenderCB (Render *re)
 
void RE_FreeRender (Render *re)
 
void RE_FreeAllRender (void)
 
void RE_FreeAllRenderResults (void)
 
void RE_FreeAllPersistentData (void)
 
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)
SyclQueue void void size_t num_bytes void
RenderPass * RE_pass_find_by_name(RenderLayer *rl, const char *name, const char *viewname)
Definition: pipeline.c:2591

◆ MAX_SCENE_RENDER_NAME

#define MAX_SCENE_RENDER_NAME   (MAX_ID_NAME + 1024 + 2)

Definition at line 539 of file pipeline.c.

Function Documentation

◆ check_compositor_output()

static int check_compositor_output ( Scene scene)
static

Definition at line 1591 of file pipeline.c.

References node_tree_has_compositor_output(), Scene::nodetree, and scene.

Referenced by RE_is_rendering_allowed().

◆ check_valid_camera()

static int check_valid_camera ( Scene scene,
Object camera_override,
ReportList reports 
)
static

◆ check_valid_camera_multiview()

static bool check_valid_camera_multiview ( Scene scene,
Object camera,
ReportList reports 
)
static

◆ check_valid_compositing_camera()

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

◆ compositor_needs_render()

static int compositor_needs_render ( Scene sce,
int  this_scene 
)
static

◆ current_scene_nothing()

static void current_scene_nothing ( void UNUSEDarg,
Scene UNUSEDscene 
)
static

Definition at line 172 of file pipeline.c.

Referenced by RE_InitRenderCB().

◆ default_break()

static int default_break ( void UNUSEDarg)
static

Definition at line 181 of file pipeline.c.

References G.

Referenced by RE_InitRenderCB().

◆ do_render_compositor()

static void do_render_compositor ( Render re)
static

◆ do_render_compositor_scene()

static void do_render_compositor_scene ( Render re,
Scene sce,
int  cfra 
)
static

◆ do_render_compositor_scenes()

static void do_render_compositor_scenes ( Render re)
static

◆ do_render_engine()

static void do_render_engine ( Render re)
static

◆ do_render_full_pipeline()

static void do_render_full_pipeline ( Render re)
static

◆ do_render_sequencer()

static void do_render_sequencer ( Render re)
static

◆ do_write_image_or_movie()

static bool do_write_image_or_movie ( Render re,
Main bmain,
Scene scene,
bMovieHandle mh,
const int  totvideos,
const char *  name_override 
)
static

◆ float_nothing()

static void float_nothing ( void UNUSEDarg,
float   UNUSEDval 
)
static

Definition at line 178 of file pipeline.c.

Referenced by RE_InitRenderCB().

◆ get_videos_dimensions()

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

◆ node_tree_has_compositor_output()

static bool node_tree_has_compositor_output ( bNodeTree ntree)
static

◆ RE_AcquiredResultGet32()

void RE_AcquiredResultGet32 ( struct Render re,
struct RenderResult result,
unsigned int *  rect,
int  view_id 
)

Only for acquired results, for lock.

Note
The caller is responsible for allocating rect in correct size!

Definition at line 497 of file pipeline.c.

References Scene::display_settings, Render::rectx, Render::recty, render_result_rect_get_pixels(), result, Render::scene, and Scene::view_settings.

Referenced by ed_preview_draw_rect().

◆ RE_AcquireResultImage()

void RE_AcquireResultImage ( struct Render re,
struct RenderResult rr,
int  view_id 
)

◆ RE_AcquireResultImageViews()

void RE_AcquireResultImageViews ( struct Render re,
struct RenderResult rr 
)

◆ RE_AcquireResultRead()

RenderResult* RE_AcquireResultRead ( struct Render re)

◆ RE_AcquireResultWrite()

RenderResult* RE_AcquireResultWrite ( Render re)

◆ RE_allow_render_generic_object()

bool RE_allow_render_generic_object ( Object ob)

Definition at line 2678 of file pipeline.c.

References OB_DUPLI, OB_DUPLIPARTS, and Object::transflag.

Referenced by clean_viewport_memory_base().

◆ RE_ClearResult()

void RE_ClearResult ( Render re)

Definition at line 335 of file pipeline.c.

References NULL, render_result_free(), and Render::result.

Referenced by BKE_image_clear_renderslot().

◆ RE_create_gp_pass()

RenderPass* RE_create_gp_pass ( struct RenderResult rr,
const char *  layername,
const char *  viewname 
)

◆ RE_current_scene_update_cb()

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

Definition at line 869 of file pipeline.c.

References Render::current_scene_update, and Render::suh.

Referenced by screen_render_invoke().

◆ RE_display_clear_cb()

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

Definition at line 857 of file pipeline.c.

References Render::dch, and Render::display_clear.

◆ RE_display_init_cb()

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

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

Definition at line 852 of file pipeline.c.

References Render::dih, and Render::display_init.

◆ RE_display_update_cb()

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

Definition at line 862 of file pipeline.c.

References Render::display_update, and Render::duh.

Referenced by screen_render_invoke(), and shader_preview_render().

◆ RE_draw_lock_cb()

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

Definition at line 885 of file pipeline.c.

References Render::dlh, and Render::draw_lock.

Referenced by screen_render_exec(), and screen_render_invoke().

◆ re_free_persistent_data()

static void re_free_persistent_data ( Render re)
static

Definition at line 651 of file pipeline.c.

References Render::engine, RenderEngine::flag, NULL, RE_engine_free(), and RE_ENGINE_RENDERING.

Referenced by RE_FreePersistentData().

◆ 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 639 of file pipeline.c.

References BLI_assert, Render::engine, RenderEngine::flag, Render::next, NULL, 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 614 of file pipeline.c.

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 626 of file pipeline.c.

References Render::next, NULL, Render::pushedresult, render_result_free(), RenderGlobal, and Render::result.

Referenced by setup_app_data().

◆ RE_FreePersistentData()

void RE_FreePersistentData ( const Scene scene)

◆ RE_FreeRender()

void RE_FreeRender ( struct Render re)

◆ RE_FreeRenderResult()

void RE_FreeRenderResult ( struct RenderResult rr)

◆ RE_GetActiveRenderView()

const char* RE_GetActiveRenderView ( Render re)

◆ RE_GetRender()

Render* RE_GetRender ( const char *  name)

◆ RE_GetRenderLayer()

RenderLayer* RE_GetRenderLayer ( RenderResult rr,
const char *  name 
)

◆ RE_GetScene()

Scene* RE_GetScene ( Render re)

Definition at line 358 of file pipeline.c.

References NULL, and Render::scene.

◆ RE_GetSceneRender()

Render* RE_GetSceneRender ( const Scene scene)

◆ RE_GetStats()

RenderStats* RE_GetStats ( Render re)

Definition at line 511 of file pipeline.c.

References Render::i.

Referenced by stampdata().

◆ RE_gl_context_create()

void RE_gl_context_create ( Render re)

◆ RE_gl_context_destroy()

void RE_gl_context_destroy ( Render re)

◆ RE_gl_context_get()

void* RE_gl_context_get ( Render re)

◆ RE_gpu_context_get()

void* RE_gpu_context_get ( Render re)

Definition at line 932 of file pipeline.c.

References Render::gpu_context, GPU_context_create(), and NULL.

Referenced by DRW_render_context_disable(), and DRW_render_context_enable().

◆ RE_HasSingleLayer()

bool RE_HasSingleLayer ( Render re)

Definition at line 253 of file pipeline.c.

References Render::r, R_SINGLE_LAYER, and RenderData::scemode.

Referenced by render_image_restore_layer().

◆ re_init_resolution()

static void re_init_resolution ( Render re,
Render source,
int  winx,
int  winy,
rcti disprect 
)
static

◆ 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 2690 of file pipeline.c.

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

Referenced by RE_InitState().

◆ RE_InitRenderCB()

void RE_InitRenderCB ( struct Render re)

◆ 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,
rcti disprect 
)

◆ RE_is_rendering_allowed()

bool RE_is_rendering_allowed ( Scene scene,
ViewLayer single_layer,
Object camera_override,
ReportList reports 
)

◆ 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 2567 of file pipeline.c.

References BLI_listbase_count_at_most(), ListBase::first, and RenderResult::layers.

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 
)

Definition at line 258 of file pipeline.c.

References render_result_new_from_exr().

◆ 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 pipeline.c.

References BLI_addtail(), BLI_mutex_init(), BLI_rw_mutex_init(), BLI_strncpy(), Render::engine_draw_mutex, Render::highlighted_tiles_mutex, MEM_callocN, Render::name, NULL, RE_GetRender(), RE_InitRenderCB(), RE_MAXNAME, RenderGlobal, and Render::resultmutex.

Referenced by RE_NewSceneRender(), and shader_preview_render().

◆ RE_NewSceneRender()

Render* RE_NewSceneRender ( const Scene scene)

◆ RE_pass_find_by_name()

RenderPass* RE_pass_find_by_name ( RenderLayer rl,
const char *  name,
const char *  viewname 
)

◆ 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 2608 of file pipeline.c.

References CHECK_PASS, NORMAL, NULL, and Z.

◆ RE_passes_have_name()

bool RE_passes_have_name ( struct RenderLayer rl)

Definition at line 2580 of file pipeline.c.

References LISTBASE_FOREACH, RenderLayer::passes, and STREQ.

Referenced by uiblock_layer_pass_buttons().

◆ RE_PreviewRender()

void RE_PreviewRender ( struct Render re,
struct Main bmain,
struct Scene scene 
)

◆ RE_progress_cb()

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

Definition at line 879 of file pipeline.c.

References Render::prh, and Render::progress.

Referenced by bake_invoke(), and screen_render_invoke().

◆ RE_ReadRenderResult()

bool RE_ReadRenderResult ( struct Scene scene,
struct Scene scenode 
)

◆ RE_ReleaseResult()

void RE_ReleaseResult ( Render re)

◆ RE_ReleaseResultImage()

void RE_ReleaseResultImage ( Render re)

◆ 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 2142 of file pipeline.c.

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_size(), BLI_file_touch(), BLI_make_existing_file(), RenderData::cfra, bMovieHandle::context_create, do_render_full_pipeline(), do_write_image_or_movie(), RenderData::engine, FILE_MAX, ListBase::first, Render::flag, RenderEngineType::flag, G, get_videos_dimensions(), height, Scene::id, RenderData::im_format, ImageFormatData::imtype, is_movie(), Render::main, MEM_mallocN, RenderData::mode, Render::movie_ctx_arr, SceneRenderView::name, ImBuf::name, SceneRenderView::next, NULL, RenderData::pic, Render::pipeline_depsgraph, Render::pipeline_scene_eval, Scene::r, Render::r, R_ANIMATION, R_EXTENSION, R_IMF_VIEWS_INDIVIDUAL, R_MULTIVIEW, R_NO_OVERWRITE, R_TOUCH, RE_engines_find(), 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, scene, bMovieHandle::start_movie, RenderData::subframe, Render::tbh, Render::test_break, RenderData::views, ImageFormatData::views_format, and width.

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

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

Definition at line 2559 of file pipeline.c.

References BKE_reportf(), NULL, render_result_exr_file_read_path(), result, and RPT_ERROR.

◆ RE_ResultGet32()

void RE_ResultGet32 ( struct Render re,
unsigned int *  rect 
)

◆ RE_seq_render_active()

int RE_seq_render_active ( Scene scene,
RenderData rd 
)

◆ RE_SetActiveRenderView()

void RE_SetActiveRenderView ( Render re,
const char *  viewname 
)

◆ RE_SetReports()

void RE_SetReports ( struct Render re,
struct ReportList reports 
)

◆ RE_SetScene()

void RE_SetScene ( Render re,
Scene sce 
)

Definition at line 366 of file pipeline.c.

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

Definition at line 874 of file pipeline.c.

References Render::sdh, and Render::stats_draw.

Referenced by screen_render_invoke().

◆ RE_SwapResult()

void RE_SwapResult ( Render re,
RenderResult **  rr 
)

Definition at line 343 of file pipeline.c.

References Render::result, and SWAP.

Referenced by BKE_image_backup_render(), and BKE_image_remove_renderslot().

◆ RE_test_break_cb()

void RE_test_break_cb ( Render re,
void handle,
int(*)(void *handle)  f 
)

◆ RE_WriteRenderViewsMovie()

bool RE_WriteRenderViewsMovie ( ReportList reports,
RenderResult rr,
Scene scene,
RenderData rd,
bMovieHandle mh,
void **  movie_ctx_arr,
const int  totvideos,
bool  preview 
)

◆ render_callback_exec_id()

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

Definition at line 142 of file pipeline.c.

References BKE_callback_exec_id(), Render::r, R_BUTS_PREVIEW, and RenderData::scemode.

Referenced by RE_RenderAnim(), and RE_RenderFrame().

◆ render_callback_exec_null()

static void render_callback_exec_null ( Render re,
Main bmain,
eCbEvent  evt 
)
static

Definition at line 134 of file pipeline.c.

References BKE_callback_exec_null(), Render::r, R_BUTS_PREVIEW, and RenderData::scemode.

Referenced by do_write_image_or_movie().

◆ render_compositor_stats()

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

Definition at line 1142 of file pipeline.c.

References Render::i, RenderStats::infostr, Render::sdh, Render::stats_draw, and str.

Referenced by do_render_compositor().

◆ render_copy_renderdata()

void render_copy_renderdata ( RenderData to,
RenderData from 
)

◆ render_get_active_layer()

RenderLayer* render_get_active_layer ( Render re,
RenderResult rr 
)

◆ render_init_depsgraph()

static void render_init_depsgraph ( Render re)
static

◆ render_init_from_main()

static int render_init_from_main ( Render re,
const RenderData rd,
Main bmain,
Scene scene,
ViewLayer single_layer,
Object camera_override,
int  anim,
int  anim_init 
)
static

◆ render_pipeline_free()

static void render_pipeline_free ( Render re)
static

◆ render_result_disprect_to_full_resolution()

static void render_result_disprect_to_full_resolution ( Render re)
static

◆ render_result_uncrop()

static void render_result_uncrop ( Render re)
static

◆ render_scene_has_layers_to_render()

static bool render_scene_has_layers_to_render ( Scene scene,
ViewLayer single_layer 
)
static

◆ render_update_anim_renderdata()

void render_update_anim_renderdata ( struct Render re,
struct RenderData rd,
struct ListBase render_layers 
)

Update some variables that can be animated, and otherwise wouldn't be due to RenderData getting copied once at the start of animation render.

Definition at line 831 of file pipeline.c.

References BLI_duplicatelist(), BLI_freelistN(), RenderData::blurfac, RenderData::gauss, RenderData::line_thickness_mode, Render::r, RenderData::unit_line_thickness, Render::view_layers, and RenderData::views.

Referenced by RE_engine_render(), and render_init_from_main().

◆ render_update_depsgraph()

static void render_update_depsgraph ( Render re)
static

◆ renderresult_stampinfo()

static void renderresult_stampinfo ( Render re)
static

◆ result_nothing()

static void result_nothing ( void UNUSEDarg,
RenderResult UNUSEDrr 
)
static

Definition at line 164 of file pipeline.c.

Referenced by RE_InitRenderCB().

◆ result_rcti_nothing()

static void result_rcti_nothing ( void UNUSEDarg,
RenderResult UNUSEDrr,
struct rcti UNUSEDrect 
)
static

Definition at line 167 of file pipeline.c.

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

Definition at line 541 of file pipeline.c.

References BLI_snprintf(), Library::id, Scene::id, ID_IS_LINKED, ID::lib, ID::name, and scene.

Referenced by RE_GetSceneRender(), and RE_NewSceneRender().

◆ stats_background()

static void stats_background ( void UNUSEDarg,
RenderStats rs 
)
static

◆ stats_nothing()

static void stats_nothing ( void UNUSEDarg,
RenderStats UNUSEDrs 
)
static

Definition at line 175 of file pipeline.c.

Referenced by RE_InitRenderCB().

◆ update_physics_cache()

static void update_physics_cache ( Render re,
Scene scene,
ViewLayer view_layer,
int   UNUSEDanim_init 
)
static

Variable Documentation

◆ 

struct { ... } RenderGlobal

◆ renderlist

ListBase renderlist

Definition at line 125 of file pipeline.c.