Blender
V3.3
|
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 Render * | RE_NewRender (const char *name) |
struct Render * | RE_GetRender (const char *name) |
struct Render * | RE_NewSceneRender (const struct Scene *scene) |
struct Render * | RE_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 struct Scene *scene) |
void | RE_FreeRenderResult (struct RenderResult *rr) |
struct RenderResult * | RE_AcquireResultRead (struct Render *re) |
struct RenderResult * | RE_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, 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 RenderStats * | RE_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, int view_id) |
void | RE_render_result_full_channel_name (char *fullname, const char *layname, const char *passname, const char *viewname, const char *chan_id, int channel) |
struct ImBuf * | RE_render_result_rect_to_ibuf (struct RenderResult *rr, const struct ImageFormatData *imf, const float dither, int view_id) |
void | RE_render_result_rect_from_ibuf (struct RenderResult *rr, const struct ImBuf *ibuf, int view_id) |
struct RenderLayer * | RE_GetRenderLayer (struct RenderResult *rr, const char *name) |
float * | RE_RenderLayerGetPass (struct RenderLayer *rl, const char *name, const char *viewname) |
bool | RE_HasSingleLayer (struct Render *re) |
struct RenderPass * | RE_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, bool allocate) |
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 Object * | RE_GetCamera (struct Render *re) |
void | RE_SetOverrideCamera (struct Render *re, struct Object *cam_ob) |
void | RE_SetCamera (struct Render *re, const struct Object *cam_ob) |
void | RE_GetViewPlane (struct Render *re, rctf *r_viewplane, rcti *r_disprect) |
void | RE_init_threadcount (Render *re) |
bool | RE_WriteRenderViewsMovie (struct ReportList *reports, struct RenderResult *rr, struct Scene *scene, struct RenderData *rd, struct bMovieHandle *mh, void **movie_ctx_arr, 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, float subframe, 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) |
struct RenderResult * | RE_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, 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 RenderPass * | RE_pass_find_by_name (struct RenderLayer *rl, const char *name, const char *viewname) |
struct RenderPass * | RE_pass_find_by_type (struct RenderLayer *rl, int passtype, const char *viewname) |
void | RE_GetCameraWindow (struct Render *re, const struct Object *camera, float mat[4][4]) |
void | RE_GetCameraWindowWithOverscan (const struct Render *re, float overscan, float r_winmat[4][4]) |
void | RE_GetCameraModelMatrix (const struct Render *re, const struct Object *camera, float r_modelmat[4][4]) |
struct Scene * | RE_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 (const RenderResult *res) |
bool | RE_HasFloatPixels (const RenderResult *res) |
bool | RE_RenderResult_is_stereo (const RenderResult *res) |
struct RenderView * | RE_RenderViewGetById (struct RenderResult *rr, int view_id) |
struct RenderView * | RE_RenderViewGetByName (struct RenderResult *rr, const char *viewname) |
RenderResult * | RE_DuplicateRenderResult (RenderResult *rr) |
#define RE_BAKE_AO 2 |
Definition at line 441 of file RE_pipeline.h.
#define RE_BAKE_DISPLACEMENT 1 |
Definition at line 440 of file RE_pipeline.h.
#define RE_BAKE_NORMALS 0 |
Definition at line 439 of file RE_pipeline.h.
#define RE_MAXNAME ((MAX_ID_NAME - 2) + 10) |
Definition at line 36 of file RE_pipeline.h.
Definition at line 1 of file RE_pipeline.h.
typedef struct RenderLayer RenderLayer |
typedef struct RenderPass RenderPass |
typedef struct RenderResult RenderResult |
typedef struct RenderStats RenderStats |
typedef struct RenderView RenderView |
void RE_AcquiredResultGet32 | ( | struct Render * | re, |
struct RenderResult * | result, | ||
unsigned int * | rect, | ||
int | view_id | ||
) |
Only for acquired results, for lock.
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().
void RE_AcquireResultImage | ( | struct Render * | re, |
struct RenderResult * | rr, | ||
int | view_id | ||
) |
Fill provided result struct with what's currently active or done. This RenderResult struct is the only exception to the rule of a RenderResult always having at least one RenderView.
Definition at line 428 of file pipeline.c.
References BLI_rw_mutex_lock(), Render::disprect, RenderResult::have_combined, RenderResult::layers, RenderView::name, NULL, RE_PASSNAME_COMBINED, RE_PASSNAME_Z, RE_RenderLayerGetPass(), RE_RenderViewGetById(), RenderView::rect32, RenderResult::rect32, RenderView::rectf, RenderResult::rectf, RenderResult::rectx, RenderResult::recty, RenderView::rectz, RenderResult::rectz, render_get_active_layer(), Render::result, Render::resultmutex, RenderResult::stamp_data, THREAD_LOCK_READ, RenderResult::views, rcti::xmin, RenderResult::xof, rcti::ymin, and RenderResult::yof.
Referenced by image_get_render_result(), renderresult_stampinfo(), and seq_render_scene_strip().
void RE_AcquireResultImageViews | ( | struct Render * | re, |
struct RenderResult * | rr | ||
) |
Same as RE_AcquireResultImage but creating the necessary views to store the result fill provided result struct with a copy of thew views of what is done so far the RenderResult.views ListBase needs to be freed after with RE_ReleaseResultImageViews
Definition at line 373 of file pipeline.c.
References BLI_rw_mutex_lock(), Render::disprect, ListBase::first, RenderResult::have_combined, RenderResult::layers, RenderView::name, RenderView::next, NULL, RE_PASSNAME_COMBINED, RE_PASSNAME_Z, RE_RenderLayerGetPass(), RenderView::rectf, RenderResult::rectx, RenderResult::recty, RenderView::rectz, render_get_active_layer(), render_result_views_shallowcopy(), Render::result, Render::resultmutex, RenderResult::stamp_data, THREAD_LOCK_READ, RenderResult::views, rcti::xmin, RenderResult::xof, rcti::ymin, and RenderResult::yof.
Referenced by do_write_image_or_movie(), ed_preview_draw_rect(), and RE_ResultGet32().
struct RenderResult* RE_AcquireResultRead | ( | struct Render * | re | ) |
If you want to know exactly what has been done.
Definition at line 314 of file pipeline.c.
References BLI_rw_mutex_lock(), NULL, Render::result, Render::resultmutex, and THREAD_LOCK_READ.
Referenced by BKE_image_acquire_renderresult(), cryptomatte_init_from_node_render(), blender::compositor::CompositorOperation::determine_canvas(), blender::compositor::RenderLayersProg::determine_canvas(), eyedropper_cryptomatte_sample_render_fl(), blender::compositor::RenderLayersProg::get_meta_data(), image_renderinfo_cb(), blender::compositor::RenderLayersProg::init_execution(), RE_engine_pass_by_index_get(), RE_engine_set_error_message(), render_image_restore_layer(), render_image_update_pass_and_layer(), screen_opengl_render_anim_step(), screen_opengl_render_apply(), and screen_opengl_render_write().
struct RenderResult* RE_AcquireResultWrite | ( | struct Render * | re | ) |
Definition at line 324 of file pipeline.c.
References BLI_rw_mutex_lock(), NULL, render_result_passes_allocated_ensure(), Render::result, Render::resultmutex, and THREAD_LOCK_WRITE.
Referenced by blender::compositor::CompositorOperation::deinit_execution(), screen_opengl_views_setup(), and shader_preview_texture().
Definition at line 2678 of file pipeline.c.
References OB_DUPLI, OB_DUPLIPARTS, and Object::transflag.
Referenced by clean_viewport_memory_base().
Definition at line 335 of file pipeline.c.
References NULL, render_result_free(), and Render::result.
Referenced by BKE_image_clear_renderslot().
struct RenderPass* RE_create_gp_pass | ( | struct RenderResult * | rr, |
const char * | layername, | ||
const char * | viewname | ||
) |
Add passes for grease pencil. Create a render-layer and render-pass for grease-pencil layer.
Definition at line 2646 of file pipeline.c.
References BLI_addtail(), BLI_findstring(), BLI_freelinkN(), BLI_strncpy(), RenderResult::layers, RenderLayer::layflag, MEM_callocN, MEM_freeN, ImBuf::name, RenderLayer::name, RenderLayer::passes, RenderLayer::passflag, RE_pass_find_by_name(), RE_PASSNAME_COMBINED, RenderPass::rect, RenderLayer::rectx, RenderResult::rectx, RenderLayer::recty, RenderResult::recty, render_layer_add_pass(), SCE_LAY_SOLID, and SCE_PASS_COMBINED.
void RE_create_render_pass | ( | struct RenderResult * | rr, |
const char * | name, | ||
int | channels, | ||
const char * | chan_id, | ||
const char * | layername, | ||
const char * | viewname, | ||
bool | allocate | ||
) |
Definition at line 474 of file render_result.c.
References channels(), ListBase::first, RenderResult::layers, RenderView::name, RenderPass::name, RenderLayer::name, RenderView::next, RenderPass::next, RenderLayer::next, RenderLayer::passes, render_layer_add_pass(), STREQ, view, RenderPass::view, and RenderResult::views.
Referenced by FRS_composite_result(), and RE_engine_add_pass().
void RE_current_scene_update_cb | ( | struct Render * | re, |
void * | handle, | ||
void(*)(void *handle, struct Scene *scene) | f | ||
) |
void RE_display_clear_cb | ( | struct 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.
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.
void RE_display_update_cb | ( | struct Render * | re, |
void * | handle, | ||
void(*)(void *handle, RenderResult *rr, struct rcti *rect) | 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().
RenderResult* RE_DuplicateRenderResult | ( | RenderResult * | rr | ) |
Definition at line 1252 of file render_result.c.
References BKE_stamp_data_copy(), BLI_addtail(), duplicate_render_layer(), duplicate_render_view(), ListBase::first, ListBase::last, RenderResult::layers, MEM_dupallocN, MEM_mallocN, RenderResult::next, NULL, RenderResult::prev, RenderResult::rect32, RenderResult::rectf, RenderResult::rectz, RenderResult::stamp_data, and RenderResult::views.
Referenced by screen_opengl_render_anim_step().
x | ranges from -1 to 1. |
TODO: Should move to kernel once... still unsure on how/where.
Definition at line 108 of file initrender.c.
References expf, fabsf, filt_catrom(), filt_cubic(), filt_mitchell(), filt_quadratic(), M_PI, R_FILTER_BOX, R_FILTER_CATROM, R_FILTER_CUBIC, R_FILTER_GAUSS, R_FILTER_MITCH, R_FILTER_QUAD, R_FILTER_TENT, sqrtf, type, and x.
Referenced by make_gaussian_blur_kernel(), and blender::compositor::BlurBaseOperation::make_gausstab().
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().
Only called on exit.
Definition at line 614 of file pipeline.c.
References FRS_exit(), RE_FreeRender(), and RenderGlobal.
Referenced by WM_exit_ex().
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().
Free persistent render data, optionally only for the given scene.
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 584 of file pipeline.c.
References BKE_curvemapping_free_data(), BLI_freelistN(), BLI_gset_free(), BLI_mutex_end(), BLI_remlink(), BLI_rw_mutex_end(), Render::engine, Render::engine_draw_mutex, Render::highlighted_tiles, Render::highlighted_tiles_mutex, Render::main, RenderData::mblur_shutter_curve, MEM_freeN, NULL, Render::pushedresult, Render::r, RE_engine_free(), render_result_free(), RenderGlobal, Render::result, Render::resultmutex, Render::scene, Render::view_layers, and RenderData::views.
Referenced by FRS_do_stroke_rendering(), and RE_FreeAllRender().
void RE_FreeRenderResult | ( | struct RenderResult * | rr | ) |
Get results and statistics.
Definition at line 233 of file pipeline.c.
References render_result_free().
Referenced by BKE_image_clear_renderslot(), BKE_image_free_buffers_ex(), BKE_image_remove_renderslot(), image_free_data(), image_load_sequence_multilayer(), render_result_exr_file_cache_read(), render_result_single_layer_begin(), render_result_single_layer_end(), schedule_write_result(), blender::bke::cryptomatte::tests::TEST(), and write_result().
const char* RE_GetActiveRenderView | ( | struct Render * | re | ) |
Definition at line 1671 of file pipeline.c.
References Render::viewname.
Referenced by EEVEE_render_draw(), EEVEE_render_read_result(), eevee_render_to_image(), GPENCIL_render_init(), GPENCIL_render_to_image(), image_rect_update(), RE_engine_active_view_get(), screen_opengl_render_doit(), and workbench_render().
Set up the view-plane/perspective matrix, three choices.
Definition at line 150 of file initrender.c.
References BKE_camera_multiview_render(), Scene::camera, camera, Render::camera_override, Render::scene, and Render::viewname.
Referenced by do_render_engine(), do_render_full_pipeline(), EEVEE_render_init(), eevee_render_to_image(), FRS_do_stroke_rendering(), GPENCIL_render_init(), GPENCIL_render_to_image(), Freestyle::BlenderFileLoader::insertShapeNode(), RE_PreviewRender(), renderresult_stampinfo(), workbench_render(), and workbench_render_matrices_init().
void RE_GetCameraModelMatrix | ( | const struct Render * | re, |
const struct Object * | camera, | ||
float | r_modelmat[4][4] | ||
) |
Definition at line 181 of file initrender.c.
References camera, copy_m4_m4(), RE_SetCamera(), and Render::winmat.
Referenced by EEVEE_render_view_sync(), FRS_do_stroke_rendering(), GPENCIL_render_init(), blender::eevee::Camera::sync(), and workbench_render_matrices_init().
void RE_GetCameraWindowWithOverscan | ( | const struct Render * | re, |
float | overscan, | ||
float | r_winmat[4][4] | ||
) |
Must be called after RE_GetCameraWindow(), does not change re->winmat
.
Definition at line 187 of file initrender.c.
References BKE_camera_params_compute_matrix(), BLI_rctf_size_x(), BLI_rctf_size_y(), Render::clip_end, Render::clip_start, copy_m4_m4(), max_ff(), params, Render::viewplane, and Render::winmat.
Referenced by EEVEE_render_view_sync().
struct Render* RE_GetRender | ( | const char * | name | ) |
Definition at line 300 of file pipeline.c.
References Render::name, Render::next, RE_MAXNAME, RenderGlobal, and STREQLEN.
Referenced by ed_preview_draw_rect(), RE_GetSceneRender(), RE_NewRender(), and shader_preview_render().
struct RenderLayer* RE_GetRenderLayer | ( | struct RenderResult * | rr, |
const char * | name | ||
) |
Definition at line 244 of file pipeline.c.
References BLI_findstring(), RenderResult::layers, and NULL.
Referenced by blender::compositor::RenderLayersProg::determine_canvas(), DRW_render_gpencil(), eyedropper_cryptomatte_sample_render_fl(), FRS_composite_result(), blender::compositor::RenderLayersProg::init_execution(), prepare(), RE_engine_pass_by_index_get(), render_result_merge(), and render_result_single_layer_end().
Definition at line 358 of file pipeline.c.
References NULL, and Render::scene.
struct RenderStats* RE_GetStats | ( | struct Render * | re | ) |
Get current view and window transform.
Definition at line 210 of file initrender.c.
References BLI_rcti_init(), Render::disprect, RenderData::mode, Render::r, R_BORDER, and Render::viewplane.
Referenced by DRW_render_gpencil(), DRW_render_to_image(), eevee_render_to_image(), and external_image_space_matrix_set().
Definition at line 903 of file pipeline.c.
References Render::gl_context, WM_opengl_context_create(), and wm_window_reset_drawable().
Referenced by screen_render_invoke().
Definition at line 911 of file pipeline.c.
References Render::gl_context, Render::gpu_context, GPU_context_active_set(), GPU_context_discard(), NULL, WM_opengl_context_activate(), and WM_opengl_context_dispose().
Referenced by render_pipeline_free().
Definition at line 927 of file pipeline.c.
References Render::gl_context.
Referenced by DRW_render_context_disable(), DRW_render_context_enable(), and RE_engine_has_render_context().
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().
bool RE_HasCombinedLayer | ( | const RenderResult * | res | ) |
Definition at line 1159 of file render_result.c.
References ListBase::first, NULL, RenderView::rect32, RenderView::rectf, and RenderResult::views.
Referenced by BKE_image_multilayer_index(), render_image_restore_layer(), ui_imageuser_layer_menu_step(), and ui_imageuser_pass_menu_step().
bool RE_HasFloatPixels | ( | const RenderResult * | res | ) |
Definition at line 1173 of file render_result.c.
References ListBase::first, and RenderResult::views.
Referenced by BKE_image_render_write(), and image_save_single().
Definition at line 253 of file pipeline.c.
References Render::r, R_SINGLE_LAYER, and RenderData::scemode.
Referenced by render_image_restore_layer().
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().
Called for new renders and when finishing rendering so we always have valid callbacks on a render.
Definition at line 565 of file pipeline.c.
References current_scene_nothing(), Render::current_scene_update, Render::dch, default_break(), Render::dih, Render::display_clear, Render::display_init, Render::display_update, Render::duh, float_nothing(), G, NULL, Render::prh, Render::progress, result_nothing(), result_rcti_nothing(), Render::sdh, stats_background(), Render::stats_draw, stats_nothing(), Render::tbh, and Render::test_break.
Referenced by RE_NewRender(), and render_endjob().
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 | ||
) |
Obligatory initialize call, doesn't change during entire render sequence.
disprect | is optional. if NULL it assumes full window render. |
Definition at line 728 of file pipeline.c.
References Render::active_view_layer, BKE_imtype_is_movie(), BKE_report(), BLI_duplicatelist(), BLI_findindex(), BLI_findlink(), BLI_freelistN(), BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), RenderData::border, ListBase::first, Render::i, RenderData::im_format, ImageFormatData::imtype, RenderResult::layers, MEM_callocN, RenderData::mode, ViewLayer::name, RenderLayer::name, RenderLayer::next, NULL, Render::ok, PIL_check_seconds_timer(), Render::r, R_BORDER, R_BUTS_PREVIEW, R_CROP, R_EDGE_FRS, R_SINGLE_LAYER, re_init_resolution(), RE_init_threadcount(), RE_point_density_fix_linking(), Render::rectx, RenderResult::rectx, Render::recty, RenderResult::recty, render_copy_renderdata(), render_result_free(), render_result_view_new(), Render::reports, Render::result, Render::resultmutex, RPT_ERROR, RenderData::scemode, RenderData::size, RenderStats::starttime, STREQ, THREAD_LOCK_WRITE, Render::view_layers, rctf::xmax, rctf::xmin, RenderData::xsch, rctf::ymax, rctf::ymin, and RenderData::ysch.
Referenced by do_render_compositor_scene(), RE_PreviewRender(), RE_ReadRenderResult(), render_init_from_main(), screen_opengl_render_init(), and shader_preview_texture().
bool RE_is_rendering_allowed | ( | struct Scene * | scene, |
struct ViewLayer * | single_layer, | ||
struct Object * | camera_override, | ||
struct ReportList * | reports | ||
) |
Definition at line 1596 of file pipeline.c.
References BKE_report(), RenderData::border, check_compositor_output(), check_valid_camera(), RenderData::mode, Scene::nodetree, Scene::r, R_BORDER, R_DOCOMP, RE_seq_render_active(), render_scene_has_layers_to_render(), RPT_ERROR, RenderData::scemode, scene, Scene::use_nodes, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.
Referenced by screen_render_invoke().
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().
struct 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().
struct 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().
struct RenderPass* RE_pass_find_by_name | ( | struct RenderLayer * | rl, |
const char * | name, | ||
const char * | viewname | ||
) |
Definition at line 2591 of file pipeline.c.
References ListBase::last, RenderPass::name, ImBuf::name, NULL, RenderLayer::passes, RenderPass::prev, STREQ, and RenderPass::view.
Referenced by eevee_cryptomatte_extract_render_passes(), eevee_render_color_result(), GPENCIL_render_init(), GPENCIL_render_result_combined(), GPENCIL_render_result_z(), RE_create_gp_pass(), RE_RenderLayerGetPass(), blender::eevee::Instance::render_frame(), render_result_to_bake(), workbench_render(), and workbench_render_result_z().
struct 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.
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().
Main preview render call.
Definition at line 2421 of file pipeline.c.
References BKE_render_resolution(), camera, Render::engine, Render::main, NULL, Scene::r, RE_engine_free(), RE_engine_render(), RE_GetCamera(), RE_InitState(), RE_SetCamera(), Render::scene, and Scene::view_layers.
Referenced by shader_preview_render().
Definition at line 879 of file pipeline.c.
References Render::prh, and Render::progress.
Referenced by bake_invoke(), and screen_render_invoke().
Only the temp file!
Definition at line 2447 of file pipeline.c.
References BKE_render_resolution(), BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), RenderData::border, RenderData::mode, NULL, Scene::r, R_BORDER, RE_GetSceneRender(), RE_InitState(), RE_NewSceneRender(), render_result_exr_file_cache_read(), render_result_uncrop(), Render::resultmutex, scene, Render::scene, THREAD_LOCK_WRITE, Scene::view_layers, rcti::xmax, rctf::xmax, rcti::xmin, rctf::xmin, rcti::ymax, rctf::ymax, rcti::ymin, and rctf::ymin.
Referenced by image_read_viewlayers_exec(), and blender::ed::space_node::node_read_viewlayers_exec().
Definition at line 351 of file pipeline.c.
References BLI_rw_mutex_unlock(), and Render::resultmutex.
Referenced by BKE_image_release_renderresult(), blender::compositor::RenderLayersNode::convert_to_operations(), cryptomatte_init_from_node_render(), blender::compositor::CompositorOperation::deinit_execution(), blender::compositor::CompositorOperation::determine_canvas(), blender::compositor::RenderLayersProg::determine_canvas(), eyedropper_cryptomatte_sample_render_fl(), blender::compositor::RenderLayersProg::get_meta_data(), image_renderinfo_cb(), blender::compositor::RenderLayersProg::init_execution(), RE_engine_pass_by_index_get(), RE_engine_set_error_message(), render_image_restore_layer(), render_image_update_pass_and_layer(), screen_opengl_render_anim_step(), screen_opengl_render_apply(), screen_opengl_views_setup(), and shader_preview_texture().
Definition at line 474 of file pipeline.c.
References BLI_rw_mutex_unlock(), and Render::resultmutex.
Referenced by BKE_image_release_ibuf(), image_get_render_result(), renderresult_stampinfo(), screen_opengl_render_write(), and seq_render_scene_strip().
void RE_ReleaseResultImageViews | ( | struct Render * | re, |
struct RenderResult * | rr | ||
) |
Clear temporary RenderResult struct.
Definition at line 418 of file pipeline.c.
References BLI_rw_mutex_unlock(), render_result_views_shallowdelete(), and Render::resultmutex.
Referenced by do_write_image_or_movie(), ed_preview_draw_rect(), and RE_ResultGet32().
void RE_render_result_full_channel_name | ( | char * | fullname, |
const char * | layname, | ||
const char * | passname, | ||
const char * | viewname, | ||
const char * | chan_id, | ||
int | channel | ||
) |
Definition at line 516 of file render_result.c.
References ARRAY_SET_ITEMS, BLI_string_join_array_by_sep_char(), and EXR_PASS_MAXNAME.
Referenced by BKE_image_render_write_exr(), ml_addpass_cb(), render_layer_add_pass(), and render_result_exr_file_read_path().
void RE_render_result_rect_from_ibuf | ( | struct RenderResult * | rr, |
const struct ImBuf * | ibuf, | ||
int | view_id | ||
) |
struct ImBuf* RE_render_result_rect_to_ibuf | ( | struct RenderResult * | rr, |
const struct ImageFormatData * | imf, | ||
const float | dither, | ||
int | view_id | ||
) |
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().
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 | ||
) |
General Blender frame render call.
write_still | Saves frames to disk (typically disabled). Useful for batch-operations (rendering from Python for e.g.) when an additional save action for is inconvenient. This is the default behavior for RE_RenderAnim. |
Definition at line 1813 of file pipeline.c.
References 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(), RenderData::cfra, do_render_full_pipeline(), do_write_image_or_movie(), FILE_MAX, G, Scene::id, RenderData::im_format, ImageFormatData::imtype, Render::main, MEM_reset_peak_memory, ImBuf::name, NULL, RenderData::pic, Scene::r, R_EXTENSION, render_callback_exec_id(), render_init_depsgraph(), render_init_from_main(), render_pipeline_free(), RenderData::scemode, scene, and RenderData::subframe.
Referenced by render_startjob(), screen_render_exec(), and seq_render_scene_strip().
float* RE_RenderLayerGetPass | ( | struct RenderLayer * | rl, |
const char * | name, | ||
const char * | viewname | ||
) |
Definition at line 238 of file pipeline.c.
References NULL, RE_pass_find_by_name(), and RenderPass::rect.
Referenced by FRS_composite_result(), image_buffer_rect_update(), blender::compositor::RenderLayersProg::init_execution(), RE_AcquireResultImage(), and RE_AcquireResultImageViews().
bool RE_RenderResult_is_stereo | ( | const RenderResult * | res | ) |
Definition at line 1184 of file render_result.c.
References BLI_findstring(), STEREO_LEFT_NAME, STEREO_RIGHT_NAME, and RenderResult::views.
Referenced by BKE_image_multilayer_index(), and uiblock_layer_pass_buttons().
struct RenderView* RE_RenderViewGetById | ( | struct RenderResult * | rr, |
int | view_id | ||
) |
Definition at line 1197 of file render_result.c.
References BLI_assert, BLI_findlink(), ListBase::first, and RenderResult::views.
Referenced by do_render_sequencer(), ed_preview_draw_rect(), image_buffer_rect_update(), RE_AcquireResultImage(), RE_render_result_rect_from_ibuf(), RE_render_result_rect_to_ibuf(), render_result_rect_fill_zero(), render_result_rect_get_pixels(), screen_opengl_render_doit(), and ui_imageuser_layer_fake_name().
struct RenderView* RE_RenderViewGetByName | ( | struct RenderResult * | rr, |
const char * | viewname | ||
) |
Definition at line 1204 of file render_result.c.
References BLI_assert, BLI_findstring(), ListBase::first, and RenderResult::views.
Referenced by blender::compositor::CompositorOperation::deinit_execution().
Caller is responsible for allocating rect
in correct size!
Definition at line 481 of file pipeline.c.
References BKE_scene_multiview_view_id_get(), Scene::display_settings, Render::r, RE_AcquireResultImageViews(), RE_ReleaseResultImageViews(), Render::rectx, Render::recty, render_result_rect_get_pixels(), Render::scene, Scene::view_settings, and Render::viewname.
Referenced by shader_preview_render().
int RE_seq_render_active | ( | struct Scene * | scene, |
struct RenderData * | rd | ||
) |
Definition at line 1264 of file pipeline.c.
References Scene::ed, ListBase::first, Sequence::next, R_DOSEQ, RenderData::scemode, scene, SEQ_TYPE_SOUND_RAM, Editing::seqbase, and Sequence::type.
Referenced by check_valid_camera(), do_render_full_pipeline(), RE_is_rendering_allowed(), and screen_render_invoke().
Definition at line 1666 of file pipeline.c.
References BLI_strncpy(), and Render::viewname.
Referenced by do_render_sequencer(), DRW_render_gpencil(), DRW_render_to_image(), RE_engine_active_view_set(), renderresult_stampinfo(), and screen_opengl_render_apply().
Per render, there's one persistent view-plane. Parts will set their own view-planes.
Definition at line 156 of file initrender.c.
References Render::camera_override.
Referenced by screen_opengl_views_setup().
void RE_SetReports | ( | struct Render * | re, |
struct ReportList * | reports | ||
) |
Error reporting.
Definition at line 1753 of file pipeline.c.
References Render::reports.
Referenced by arg_handle_render_animation(), arg_handle_render_frame(), bake_exec(), bake_startjob(), render_startjob(), and screen_render_exec().
Definition at line 366 of file pipeline.c.
References Render::scene.
Referenced by shader_preview_texture().
void RE_stats_draw_cb | ( | struct 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().
void RE_SwapResult | ( | struct Render * | re, |
struct 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().
Definition at line 891 of file pipeline.c.
References Render::tbh, and Render::test_break.
Referenced by bake_exec(), bake_invoke(), screen_render_exec(), screen_render_invoke(), and shader_preview_render().
bool RE_WriteRenderViewsMovie | ( | struct ReportList * | reports, |
struct RenderResult * | rr, | ||
struct Scene * | scene, | ||
struct RenderData * | rd, | ||
struct bMovieHandle * | mh, | ||
void ** | movie_ctx_arr, | ||
int | totvideos, | ||
bool | preview | ||
) |
Definition at line 1954 of file pipeline.c.
References bMovieHandle::append_movie, BKE_image_format_free(), BKE_image_format_init_for_write(), BKE_scene_multiview_view_id_suffix_get(), BLI_assert, BLI_findstringindex(), BLI_listbase_count_at_most(), RenderData::cfra, ImBuf::dither, RenderData::dither_intensity, RenderData::im_format, IMB_colormanagement_imbuf_for_write(), IMB_freeImBuf(), IMB_stereo3d_ImBuf(), ImBuf::name, names, NULL, usdtokens::preview(), RenderData::psfra, Scene::r, R_IMF_VIEWS_INDIVIDUAL, R_IMF_VIEWS_STEREO_3D, RE_render_result_rect_to_ibuf(), ImBuf::rect, scene, RenderData::sfra, STEREO_LEFT_NAME, STEREO_RIGHT_NAME, RenderResult::views, ImageFormatData::views_format, ImBuf::x, and ImBuf::y.
Referenced by do_write_image_or_movie(), and write_result().