Blender  V2.93
Classes | Macros | Typedefs | Functions
RE_pipeline.h File Reference
#include "DEG_depsgraph.h"
#include "DNA_listBase.h"
#include "DNA_vec_types.h"

Go to the source code of this file.

Classes

struct  RenderView
 
struct  RenderPass
 
struct  RenderLayer
 
struct  RenderResult
 
class  RenderStats
 

Macros

#define RE_MAXNAME   ((MAX_ID_NAME - 2) + 10)
 
#define RE_BAKE_NORMALS   0
 
#define RE_BAKE_DISPLACEMENT   1
 
#define RE_BAKE_AO   2
 

Typedefs

typedef struct Render Render
 
typedef struct RenderView RenderView
 
typedef struct RenderPass RenderPass
 
typedef struct RenderLayer RenderLayer
 
typedef struct RenderResult RenderResult
 
typedef struct RenderStats RenderStats
 

Functions

struct RenderRE_NewRender (const char *name)
 
struct RenderRE_GetRender (const char *name)
 
struct RenderRE_NewSceneRender (const struct Scene *scene)
 
struct RenderRE_GetSceneRender (const struct Scene *scene)
 
void RE_InitRenderCB (struct Render *re)
 
void RE_FreeRender (struct Render *re)
 
void RE_FreeAllRender (void)
 
void RE_FreeAllRenderResults (void)
 
void RE_FreeAllPersistentData (void)
 
void RE_FreePersistentData (const Scene *scene)
 
void RE_FreeRenderResult (struct RenderResult *rr)
 
struct RenderResultRE_AcquireResultRead (struct Render *re)
 
struct RenderResultRE_AcquireResultWrite (struct Render *re)
 
void RE_ReleaseResult (struct Render *re)
 
void RE_AcquireResultImageViews (struct Render *re, struct RenderResult *rr)
 
void RE_ReleaseResultImageViews (struct Render *re, struct RenderResult *rr)
 
void RE_AcquireResultImage (struct Render *re, struct RenderResult *rr, const int view_id)
 
void RE_ReleaseResultImage (struct Render *re)
 
void RE_SwapResult (struct Render *re, struct RenderResult **rr)
 
void RE_ClearResult (struct Render *re)
 
struct RenderStatsRE_GetStats (struct Render *re)
 
void RE_ResultGet32 (struct Render *re, unsigned int *rect)
 
void RE_AcquiredResultGet32 (struct Render *re, struct RenderResult *result, unsigned int *rect, const int view_id)
 
void RE_render_result_rect_from_ibuf (struct RenderResult *rr, struct RenderData *rd, struct ImBuf *ibuf, const int view_id)
 
struct RenderLayerRE_GetRenderLayer (struct RenderResult *rr, const char *name)
 
floatRE_RenderLayerGetPass (volatile struct RenderLayer *rl, const char *name, const char *viewname)
 
bool RE_HasSingleLayer (struct Render *re)
 
struct RenderPassRE_create_gp_pass (struct RenderResult *rr, const char *layername, const char *viewname)
 
void RE_create_render_pass (struct RenderResult *rr, const char *name, int channels, const char *chan_id, const char *layername, const char *viewname)
 
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)
 
struct ObjectRE_GetCamera (struct Render *re)
 
void RE_SetOverrideCamera (struct Render *re, struct Object *cam_ob)
 
void RE_SetCamera (struct Render *re, struct Object *cam_ob)
 
void RE_GetViewPlane (struct Render *re, rctf *r_viewplane, rcti *r_disprect)
 
void RE_init_threadcount (Render *re)
 
bool RE_WriteRenderViewsImage (struct ReportList *reports, struct RenderResult *rr, struct Scene *scene, const bool stamp, char *name)
 
bool RE_WriteRenderViewsMovie (struct ReportList *reports, struct RenderResult *rr, struct Scene *scene, struct RenderData *rd, struct bMovieHandle *mh, void **movie_ctx_arr, const int totvideos, bool preview)
 
void RE_RenderFrame (struct Render *re, struct Main *bmain, struct Scene *scene, struct ViewLayer *single_layer, struct Object *camera_override, int frame, const bool write_still)
 
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)
 
void RE_SetActiveRenderView (struct Render *re, const char *viewname)
 
const char * RE_GetActiveRenderView (struct Render *re)
 
void RE_SetReports (struct Render *re, struct ReportList *reports)
 
void RE_PreviewRender (struct Render *re, struct Main *bmain, struct Scene *scene)
 
bool RE_ReadRenderResult (struct Scene *scene, struct Scene *scenode)
 
bool RE_WriteRenderResult (struct ReportList *reports, RenderResult *rr, const char *filename, struct ImageFormatData *imf, const char *view, int layer)
 
struct RenderResultRE_MultilayerConvert (void *exrhandle, const char *colorspace, bool predivide, int rectx, int recty)
 
void RE_display_init_cb (struct Render *re, void *handle, void(*f)(void *handle, RenderResult *rr))
 
void RE_display_clear_cb (struct Render *re, void *handle, void(*f)(void *handle, RenderResult *rr))
 
void RE_display_update_cb (struct Render *re, void *handle, void(*f)(void *handle, RenderResult *rr, volatile struct rcti *rect))
 
void RE_stats_draw_cb (struct Render *re, void *handle, void(*f)(void *handle, RenderStats *rs))
 
void RE_progress_cb (struct Render *re, void *handle, void(*f)(void *handle, float))
 
void RE_draw_lock_cb (struct Render *re, void *handle, void(*f)(void *handle, bool lock))
 
void RE_test_break_cb (struct Render *re, void *handle, int(*f)(void *handle))
 
void RE_current_scene_update_cb (struct Render *re, void *handle, void(*f)(void *handle, struct Scene *scene))
 
void RE_gl_context_create (Render *re)
 
void RE_gl_context_destroy (Render *re)
 
void * RE_gl_context_get (Render *re)
 
void * RE_gpu_context_get (Render *re)
 
float RE_filter_value (int type, float x)
 
int RE_seq_render_active (struct Scene *scene, struct RenderData *rd)
 
bool RE_layers_have_name (struct RenderResult *result)
 
bool RE_passes_have_name (struct RenderLayer *rl)
 
struct RenderPassRE_pass_find_by_name (volatile struct RenderLayer *rl, const char *name, const char *viewname)
 
struct RenderPassRE_pass_find_by_type (volatile struct RenderLayer *rl, int passtype, const char *viewname)
 
void RE_GetCameraWindow (struct Render *re, struct Object *camera, float mat[4][4])
 
void RE_GetCameraWindowWithOverscan (struct Render *re, float overscan, float r_winmat[4][4])
 
void RE_GetCameraModelMatrix (struct Render *re, struct Object *camera, float r_modelmat[4][4])
 
struct SceneRE_GetScene (struct Render *re)
 
void RE_SetScene (struct Render *re, struct Scene *sce)
 
bool RE_is_rendering_allowed (struct Scene *scene, struct ViewLayer *single_layer, struct Object *camera_override, struct ReportList *reports)
 
bool RE_allow_render_generic_object (struct Object *ob)
 
bool RE_HasCombinedLayer (RenderResult *res)
 
bool RE_HasFloatPixels (RenderResult *res)
 
bool RE_RenderResult_is_stereo (RenderResult *res)
 
struct RenderViewRE_RenderViewGetById (struct RenderResult *rr, const int view_id)
 
struct RenderViewRE_RenderViewGetByName (struct RenderResult *rr, const char *viewname)
 
RenderResultRE_DuplicateRenderResult (RenderResult *rr)
 

Macro Definition Documentation

◆ RE_BAKE_AO

#define RE_BAKE_AO   2

Definition at line 358 of file RE_pipeline.h.

◆ RE_BAKE_DISPLACEMENT

#define RE_BAKE_DISPLACEMENT   1

Definition at line 357 of file RE_pipeline.h.

◆ RE_BAKE_NORMALS

#define RE_BAKE_NORMALS   0

Definition at line 356 of file RE_pipeline.h.

◆ RE_MAXNAME

#define RE_MAXNAME   ((MAX_ID_NAME - 2) + 10)

Definition at line 51 of file RE_pipeline.h.

Typedef Documentation

◆ Render

typedef struct Render Render

Definition at line 1 of file RE_pipeline.h.

◆ RenderLayer

typedef struct RenderLayer RenderLayer

◆ RenderPass

typedef struct RenderPass RenderPass

◆ RenderResult

typedef struct RenderResult RenderResult

◆ RenderStats

typedef struct RenderStats RenderStats

◆ RenderView

typedef struct RenderView RenderView

Function Documentation

◆ RE_AcquiredResultGet32()

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

◆ RE_AcquireResultImage()

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

◆ RE_AcquireResultImageViews()

void RE_AcquireResultImageViews ( Render re,
RenderResult rr 
)

◆ RE_AcquireResultRead()

struct RenderResult* RE_AcquireResultRead ( struct Render re)

◆ RE_AcquireResultWrite()

struct RenderResult* RE_AcquireResultWrite ( struct Render re)

◆ RE_allow_render_generic_object()

bool RE_allow_render_generic_object ( struct Object ob)

Definition at line 2848 of file pipeline.c.

References OB_DUPLI, OB_DUPLIPARTS, and Object::transflag.

Referenced by clean_viewport_memory_base().

◆ RE_ClearResult()

void RE_ClearResult ( struct Render re)

Definition at line 363 of file pipeline.c.

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

Referenced by BKE_image_clear_renderslot().

◆ RE_create_gp_pass()

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

◆ RE_create_render_pass()

void RE_create_render_pass ( struct RenderResult rr,
const char *  name,
int  channels,
const char *  chan_id,
const char *  layername,
const char *  viewname 
)

◆ RE_current_scene_update_cb()

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

◆ RE_display_clear_cb()

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

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

Definition at line 920 of file pipeline.c.

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

◆ RE_display_update_cb()

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

◆ RE_draw_lock_cb()

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

Definition at line 953 of file pipeline.c.

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

Referenced by screen_render_exec(), and screen_render_invoke().

◆ RE_DuplicateRenderResult()

RenderResult* RE_DuplicateRenderResult ( RenderResult rr)

◆ RE_filter_value()

float RE_filter_value ( int  type,
float  x 
)

◆ RE_FreeAllPersistentData()

void RE_FreeAllPersistentData ( void  )

◆ RE_FreeAllRender()

void RE_FreeAllRender ( void  )

Definition at line 653 of file pipeline.c.

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

Referenced by WM_exit_ex().

◆ RE_FreeAllRenderResults()

void RE_FreeAllRenderResults ( void  )

Definition at line 666 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 ( struct Render re)

◆ RE_GetCamera()

struct Object* RE_GetCamera ( struct Render re)

◆ RE_GetCameraModelMatrix()

void RE_GetCameraModelMatrix ( struct Render re,
struct Object camera,
float  r_modelmat[4][4] 
)

◆ RE_GetCameraWindow()

void RE_GetCameraWindow ( struct Render re,
struct Object camera,
float  mat[4][4] 
)

◆ RE_GetCameraWindowWithOverscan()

void RE_GetCameraWindowWithOverscan ( struct Render re,
float  overscan,
float  r_winmat[4][4] 
)

◆ RE_GetRender()

struct Render* RE_GetRender ( const char *  name)

◆ RE_GetRenderLayer()

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

◆ RE_GetScene()

struct Scene* RE_GetScene ( struct Render re)

Definition at line 387 of file pipeline.c.

References NULL, and Render::scene.

◆ RE_GetSceneRender()

struct Render* RE_GetSceneRender ( const struct Scene scene)

◆ RE_GetStats()

struct RenderStats* RE_GetStats ( struct Render re)

Definition at line 552 of file pipeline.c.

References Render::i.

Referenced by stampdata().

◆ RE_GetViewPlane()

void RE_GetViewPlane ( struct Render re,
rctf r_viewplane,
rcti r_disprect 
)

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

Definition at line 991 of file pipeline.c.

References Render::gl_context.

Referenced by DRW_render_context_disable(), and DRW_render_context_enable().

◆ RE_gpu_context_get()

void* RE_gpu_context_get ( Render re)

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

bool RE_HasCombinedLayer ( RenderResult res)

◆ RE_HasFloatPixels()

bool RE_HasFloatPixels ( RenderResult res)

◆ RE_HasSingleLayer()

bool RE_HasSingleLayer ( struct Render re)

Definition at line 285 of file pipeline.c.

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

Referenced by render_image_restore_layer().

◆ RE_init_threadcount()

void RE_init_threadcount ( Render re)

Definition at line 2657 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 ( struct Scene scene,
struct ViewLayer single_layer,
struct Object camera_override,
struct ReportList reports 
)

◆ RE_layers_have_name()

bool RE_layers_have_name ( struct RenderResult result)

◆ RE_MultilayerConvert()

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

Definition at line 290 of file pipeline.c.

References render_result_new_from_exr().

◆ RE_NewRender()

struct Render* RE_NewRender ( const char *  name)

◆ RE_NewSceneRender()

struct Render* RE_NewSceneRender ( const struct Scene scene)

◆ RE_pass_find_by_name()

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

◆ RE_pass_find_by_type()

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

◆ RE_passes_have_name()

bool RE_passes_have_name ( struct RenderLayer rl)

Definition at line 2753 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 ( struct Render re,
void *  handle,
void(*)(void *handle, float f 
)

Definition at line 947 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 ( struct Render re)

◆ RE_ReleaseResultImage()

void RE_ReleaseResultImage ( struct Render re)

◆ RE_ReleaseResultImageViews()

void RE_ReleaseResultImageViews ( struct Render re,
struct RenderResult rr 
)

◆ RE_render_result_rect_from_ibuf()

void RE_render_result_rect_from_ibuf ( struct RenderResult rr,
struct RenderData rd,
struct ImBuf ibuf,
const int  view_id 
)

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

Definition at line 2314 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_frame_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(), FILE_MAX, ListBase::first, Render::flag, G, get_videos_dimensions(), height, Scene::id, RenderData::im_format, ImageFormatData::imtype, 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_movie_free_all(), 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, 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,
const bool  write_still 
)

◆ RE_RenderLayerGetPass()

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

◆ RE_RenderResult_is_stereo()

bool RE_RenderResult_is_stereo ( RenderResult res)

◆ RE_RenderViewGetById()

struct RenderView* RE_RenderViewGetById ( struct RenderResult rr,
const int  view_id 
)

◆ RE_RenderViewGetByName()

struct RenderView* RE_RenderViewGetByName ( struct RenderResult rr,
const char *  viewname 
)

◆ RE_ResultGet32()

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

◆ RE_seq_render_active()

int RE_seq_render_active ( struct Scene scene,
struct RenderData rd 
)

◆ RE_SetActiveRenderView()

void RE_SetActiveRenderView ( struct Render re,
const char *  viewname 
)

◆ RE_SetCamera()

void RE_SetCamera ( Render re,
Object cam_ob 
)

◆ RE_SetOverrideCamera()

void RE_SetOverrideCamera ( struct Render re,
struct Object cam_ob 
)

Definition at line 175 of file initrender.c.

References Render::camera_override.

Referenced by screen_opengl_views_setup().

◆ RE_SetReports()

void RE_SetReports ( struct Render re,
struct ReportList reports 
)

◆ RE_SetScene()

void RE_SetScene ( struct Render re,
struct Scene sce 
)

Definition at line 395 of file pipeline.c.

References Render::scene.

Referenced by shader_preview_texture().

◆ RE_stats_draw_cb()

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

Definition at line 942 of file pipeline.c.

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

Referenced by screen_render_invoke().

◆ RE_SwapResult()

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

Definition at line 371 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 ( struct Render re,
void *  handle,
int(*)(void *handle)  f 
)

◆ RE_WriteRenderResult()

bool RE_WriteRenderResult ( struct ReportList reports,
RenderResult rr,
const char *  filename,
struct ImageFormatData imf,
const char *  view,
int  layer 
)

◆ RE_WriteRenderViewsImage()

bool RE_WriteRenderViewsImage ( struct ReportList reports,
struct RenderResult rr,
struct Scene scene,
const bool  stamp,
char *  name 
)

◆ RE_WriteRenderViewsMovie()

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