|
Blender
V2.93
|
#include "DNA_listBase.h"#include "DNA_node_types.h"#include "DNA_scene_types.h"#include "RE_bake.h"#include "RNA_types.h"#include "BLI_threads.h"Go to the source code of this file.
Classes | |
| struct | RenderEngineType |
| struct | RenderEngine |
Macros | |
| #define | RE_INTERNAL 1 |
| #define | RE_USE_PREVIEW 4 |
| #define | RE_USE_POSTPROCESS 8 |
| #define | RE_USE_EEVEE_VIEWPORT 16 |
| #define | RE_USE_SAVE_BUFFERS 32 |
| #define | RE_USE_SHADING_NODES_CUSTOM 64 |
| #define | RE_USE_SPHERICAL_STEREO 128 |
| #define | RE_USE_STEREO_VIEWPORT 256 |
| #define | RE_USE_GPU_CONTEXT 512 |
| #define | RE_USE_CUSTOM_FREESTYLE 1024 |
| #define | RE_ENGINE_ANIMATION 1 |
| #define | RE_ENGINE_PREVIEW 2 |
| #define | RE_ENGINE_DO_DRAW 4 |
| #define | RE_ENGINE_DO_UPDATE 8 |
| #define | RE_ENGINE_RENDERING 16 |
| #define | RE_ENGINE_HIGHLIGHT_TILES 32 |
Typedefs | |
| typedef struct RenderEngineType | RenderEngineType |
| typedef void(* | update_render_passes_cb_t) (void *userdata, struct Scene *scene, struct ViewLayer *view_layer, const char *name, int channels, const char *chanid, eNodeSocketDatatype type) |
| typedef struct RenderEngine | RenderEngine |
Functions | |
| RenderEngine * | RE_engine_create (RenderEngineType *type) |
| void | RE_engine_free (RenderEngine *engine) |
| void | RE_layer_load_from_file (struct RenderLayer *layer, struct ReportList *reports, const char *filename, int x, int y) |
| void | RE_result_load_from_file (struct RenderResult *result, struct ReportList *reports, const char *filename) |
| struct RenderResult * | RE_engine_begin_result (RenderEngine *engine, int x, int y, int w, int h, const char *layername, const char *viewname) |
| void | RE_engine_update_result (RenderEngine *engine, struct RenderResult *result) |
| void | RE_engine_add_pass (RenderEngine *engine, const char *name, int channels, const char *chan_id, const char *layername) |
| void | RE_engine_end_result (RenderEngine *engine, struct RenderResult *result, bool cancel, bool highlight, bool merge_results) |
| struct RenderResult * | RE_engine_get_result (struct RenderEngine *engine) |
| const char * | RE_engine_active_view_get (RenderEngine *engine) |
| void | RE_engine_active_view_set (RenderEngine *engine, const char *viewname) |
| float | RE_engine_get_camera_shift_x (RenderEngine *engine, struct Object *camera, bool use_spherical_stereo) |
| void | RE_engine_get_camera_model_matrix (RenderEngine *engine, struct Object *camera, bool use_spherical_stereo, float *r_modelmat) |
| bool | RE_engine_get_spherical_stereo (RenderEngine *engine, struct Object *camera) |
| bool | RE_engine_test_break (RenderEngine *engine) |
| void | RE_engine_update_stats (RenderEngine *engine, const char *stats, const char *info) |
| void | RE_engine_update_progress (RenderEngine *engine, float progress) |
| void | RE_engine_update_memory_stats (RenderEngine *engine, float mem_used, float mem_peak) |
| void | RE_engine_report (RenderEngine *engine, int type, const char *msg) |
| void | RE_engine_set_error_message (RenderEngine *engine, const char *msg) |
| bool | RE_engine_render (struct Render *re, bool do_all) |
| bool | RE_engine_is_external (const struct Render *re) |
| void | RE_engine_frame_set (struct RenderEngine *engine, int frame, float subframe) |
| void | RE_engine_update_render_passes (struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer, update_render_passes_cb_t callback, void *callback_data) |
| void | RE_engine_register_pass (struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer, const char *name, int channels, const char *chanid, eNodeSocketDatatype type) |
| bool | RE_engine_use_persistent_data (struct RenderEngine *engine) |
| void | RE_engines_init (void) |
| void | RE_engines_exit (void) |
| void | RE_engines_register (RenderEngineType *render_type) |
| bool | RE_engine_is_opengl (RenderEngineType *render_type) |
| RenderEngineType * | RE_engines_find (const char *idname) |
| rcti * | RE_engine_get_current_tiles (struct Render *re, int *r_total_tiles, bool *r_needs_free) |
| struct RenderData * | RE_engine_get_render_data (struct Render *re) |
| void | RE_bake_engine_set_engine_parameters (struct Render *re, struct Main *bmain, struct Scene *scene) |
| void | RE_engine_free_blender_memory (struct RenderEngine *engine) |
Variables | |
| ListBase | R_engines |
| #define RE_ENGINE_ANIMATION 1 |
Definition at line 70 of file RE_engine.h.
| #define RE_ENGINE_DO_DRAW 4 |
Definition at line 72 of file RE_engine.h.
| #define RE_ENGINE_DO_UPDATE 8 |
Definition at line 73 of file RE_engine.h.
| #define RE_ENGINE_HIGHLIGHT_TILES 32 |
Definition at line 75 of file RE_engine.h.
| #define RE_ENGINE_PREVIEW 2 |
Definition at line 71 of file RE_engine.h.
| #define RE_ENGINE_RENDERING 16 |
Definition at line 74 of file RE_engine.h.
| #define RE_INTERNAL 1 |
Definition at line 57 of file RE_engine.h.
| #define RE_USE_CUSTOM_FREESTYLE 1024 |
Definition at line 67 of file RE_engine.h.
| #define RE_USE_EEVEE_VIEWPORT 16 |
Definition at line 61 of file RE_engine.h.
| #define RE_USE_GPU_CONTEXT 512 |
Definition at line 66 of file RE_engine.h.
| #define RE_USE_POSTPROCESS 8 |
Definition at line 60 of file RE_engine.h.
| #define RE_USE_PREVIEW 4 |
Definition at line 59 of file RE_engine.h.
| #define RE_USE_SAVE_BUFFERS 32 |
Definition at line 62 of file RE_engine.h.
| #define RE_USE_SHADING_NODES_CUSTOM 64 |
Definition at line 63 of file RE_engine.h.
| #define RE_USE_SPHERICAL_STEREO 128 |
Definition at line 64 of file RE_engine.h.
| #define RE_USE_STEREO_VIEWPORT 256 |
Definition at line 65 of file RE_engine.h.
| typedef struct RenderEngine RenderEngine |
| typedef struct RenderEngineType RenderEngineType |
| typedef void(* update_render_passes_cb_t) (void *userdata, struct Scene *scene, struct ViewLayer *view_layer, const char *name, int channels, const char *chanid, eNodeSocketDatatype type) |
Definition at line 117 of file RE_engine.h.
| void RE_bake_engine_set_engine_parameters | ( | struct Render * | re, |
| struct Main * | bmain, | ||
| struct Scene * | scene | ||
| ) |
Definition at line 731 of file engine.c.
References Render::main, Scene::r, Render::r, render_copy_renderdata(), scene, and Render::scene.
Referenced by bake().
| const char* RE_engine_active_view_get | ( | RenderEngine * | engine | ) |
Definition at line 522 of file engine.c.
References RenderEngine::re, and RE_GetActiveRenderView().
| void RE_engine_active_view_set | ( | RenderEngine * | engine, |
| const char * | viewname | ||
| ) |
Definition at line 528 of file engine.c.
References RenderEngine::re, and RE_SetActiveRenderView().
| void RE_engine_add_pass | ( | RenderEngine * | engine, |
| const char * | name, | ||
| int | channels, | ||
| const char * | chan_id, | ||
| const char * | layername | ||
| ) |
Definition at line 359 of file engine.c.
References NULL, RenderEngine::re, RE_create_render_pass(), and Render::result.
Referenced by draw_render_result_ensure_pass_cb().
| struct RenderResult* RE_engine_begin_result | ( | RenderEngine * | engine, |
| int | x, | ||
| int | y, | ||
| int | w, | ||
| int | h, | ||
| const char * | layername, | ||
| const char * | viewname | ||
| ) |
Definition at line 279 of file engine.c.
References RenderEngine::bake, BLI_addtail(), CLAMP, Render::disprect, RenderResult::do_exr_tile, RenderEngine::fullresult, get_part_from_result(), PART_STATUS_IN_PROGRESS, RenderEngine::pixels, RenderEngine::re, RenderResult::rectx, RenderResult::recty, render_result_clone_passes(), render_result_from_bake(), render_result_new(), result, Render::result, RR_USE_MEM, RenderPart::status, w(), x, rcti::xmax, rcti::xmin, y, rcti::ymax, and rcti::ymin.
Referenced by DRW_render_to_image().
| RenderEngine* RE_engine_create | ( | RenderEngineType * | type | ) |
Definition at line 133 of file engine.c.
References BLI_mutex_init(), MEM_callocN, type, RenderEngine::type, and RenderEngine::update_render_passes_mutex.
Referenced by cmp_node_rlayer_create_outputs(), external_draw_scene_do(), node_shader_script_update_exec(), RE_bake_engine(), RE_engine_render(), blender::bke::tests::TEST(), view_layer_add_aov_exec(), and view_layer_remove_aov_exec().
| void RE_engine_end_result | ( | RenderEngine * | engine, |
| struct RenderResult * | result, | ||
| bool | cancel, | ||
| bool | highlight, | ||
| bool | merge_results | ||
| ) |
Definition at line 374 of file engine.c.
References RenderEngine::bake, BLI_remlink(), Render::display_update, RenderResult::do_exr_tile, Render::duh, RenderEngine::fullresult, get_part_from_result(), NULL, PART_STATUS_MERGED, PART_STATUS_RENDERED, RenderEngine::pixels, Render::r, R_BUTS_PREVIEW, RenderEngine::re, render_result_exr_file_merge(), render_result_free(), render_result_merge(), render_result_to_bake(), result, Render::result, RenderData::scemode, RenderPart::status, Render::tbh, Render::test_break, and Render::viewname.
Referenced by DRW_render_to_image().
| void RE_engine_frame_set | ( | struct RenderEngine * | engine, |
| int | frame, | ||
| float | subframe | ||
| ) |
Definition at line 711 of file engine.c.
References BKE_scene_camera_switch_update(), BKE_scene_frame_set(), BKE_scene_graph_update_for_newframe_ex(), CLAMP, DEG_ids_clear_recalc(), RenderEngine::depsgraph, double(), MAXFRAME, MINAFRAME, RenderEngine::re, and Render::scene.
Referenced by DRW_render_set_time(), and eevee_render_to_image().
| void RE_engine_free | ( | RenderEngine * | engine | ) |
Definition at line 161 of file engine.c.
References BLI_mutex_end(), BPY_DECREF_RNA_INVALIDATE(), engine_depsgraph_free(), MEM_freeN, RenderEngine::py_instance, and RenderEngine::update_render_passes_mutex.
Referenced by cmp_node_rlayer_create_outputs(), ED_view3d_stop_render_preview(), node_shader_script_update_exec(), RE_bake_engine(), RE_engine_render(), re_free_persistent_data(), RE_FreeAllPersistentData(), RE_FreeRender(), RE_PreviewRender(), render_pipeline_free(), blender::bke::tests::TEST(), view3d_main_region_free(), view_layer_add_aov_exec(), and view_layer_remove_aov_exec().
| void RE_engine_free_blender_memory | ( | struct RenderEngine * | engine | ) |
Definition at line 1108 of file engine.c.
References engine_depsgraph_free(), engine_keep_depsgraph(), and RenderEngine::has_grease_pencil.
| void RE_engine_get_camera_model_matrix | ( | RenderEngine * | engine, |
| struct Object * | camera, | ||
| bool | use_spherical_stereo, | ||
| float * | r_modelmat | ||
| ) |
Definition at line 546 of file engine.c.
References BKE_camera_multiview_model_matrix(), NULL, Render::r, RenderEngine::re, and Render::viewname.
| float RE_engine_get_camera_shift_x | ( | RenderEngine * | engine, |
| struct Object * | camera, | ||
| bool | use_spherical_stereo | ||
| ) |
Definition at line 534 of file engine.c.
References BKE_camera_multiview_shift_x(), NULL, Render::r, RenderEngine::re, and Render::viewname.
Definition at line 568 of file engine.c.
References BLENDER_MAX_THREADS, BLI_ghashIterator_getValue(), BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), RenderPart::disprect, Render::engine, RenderEngine::flag, GHASH_ITER, MEM_mallocN, MEM_reallocN, NULL, PART_STATUS_IN_PROGRESS, Render::parts, Render::partsmutex, RE_ENGINE_HIGHLIGHT_TILES, RenderPart::status, and THREAD_LOCK_READ.
Referenced by draw_render_info().
| struct RenderData* RE_engine_get_render_data | ( | struct Render * | re | ) |
Definition at line 616 of file engine.c.
References Render::r.
Referenced by draw_render_info(), and render_border_exec().
| struct RenderResult* RE_engine_get_result | ( | struct RenderEngine * | engine | ) |
Definition at line 428 of file engine.c.
References RenderEngine::re, and Render::result.
Referenced by DRW_render_gpencil(), and DRW_render_to_image().
| bool RE_engine_get_spherical_stereo | ( | RenderEngine * | engine, |
| struct Object * | camera | ||
| ) |
Definition at line 562 of file engine.c.
References BKE_camera_multiview_spherical_stereo(), NULL, Render::r, and RenderEngine::re.
| bool RE_engine_is_external | ( | const struct Render * | re | ) |
| bool RE_engine_is_opengl | ( | RenderEngineType * | render_type | ) |
Definition at line 125 of file engine.c.
References RenderEngineType::draw_engine, DRW_engine_render_support(), and NULL.
| void RE_engine_register_pass | ( | struct RenderEngine * | engine, |
| struct Scene * | scene, | ||
| struct ViewLayer * | view_layer, | ||
| const char * | name, | ||
| int | channels, | ||
| const char * | chanid, | ||
| eNodeSocketDatatype | type | ||
| ) |
Definition at line 1092 of file engine.c.
References scene, type, RenderEngine::update_render_passes_cb, and RenderEngine::update_render_passes_data.
Referenced by EEVEE_cryptomatte_update_passes(), EEVEE_render_update_passes(), and workbench_render_update_passes().
| bool RE_engine_render | ( | struct Render * | re, |
| bool | do_all | ||
| ) |
Definition at line 889 of file engine.c.
References BKE_report(), BKE_reports_contain(), BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), BLI_strncpy(), Render::camera_override, RenderEngine::camera_override, RenderData::cfra, RenderStats::cfra, Render::disprect, Render::dlh, RenderResult::do_exr_tile, Render::draw_lock, RenderData::engine, Render::engine, engine_depsgraph_free(), engine_keep_depsgraph(), engine_render_view_layer(), ListBase::first, Render::flag, RenderEngine::flag, FOREACH_VIEW_LAYER_TO_RENDER_BEGIN, FOREACH_VIEW_LAYER_TO_RENDER_END, RenderEngine::fullresult, G, RenderEngine::has_grease_pencil, Render::i, Scene::id, RenderData::mode, ID::name, NULL, Render::partsmutex, Render::partx, Render::party, Scene::r, Render::r, R_ANIMATION, R_BUTS_PREVIEW, R_EDGE_FRS, R_EXR_CACHE_FILE, R_EXR_TILE_FILE, R_NO_FRAME_UPDATE, RenderEngine::re, RE_ENGINE_ANIMATION, RE_engine_create(), RE_engine_free(), RE_ENGINE_PREVIEW, RE_ENGINE_RENDERING, RE_engine_test_break(), RE_engines_find(), RE_parts_free(), RE_parts_init(), RE_USE_POSTPROCESS, RE_USE_PREVIEW, RE_USE_SAVE_BUFFERS, render_result_exr_file_begin(), render_result_exr_file_cache_write(), render_result_exr_file_end(), render_result_free(), render_result_free_list(), render_result_new(), render_update_anim_renderdata(), Render::reports, RenderEngine::resolution_x, RenderEngine::resolution_y, Render::result, Render::resultmutex, RPT_ERROR, RR_ALL_LAYERS, RR_ALL_VIEWS, RR_USE_EXR, RR_USE_MEM, RenderData::scemode, Render::scene, RenderStats::scene_name, THREAD_LOCK_WRITE, RenderEngine::tile_x, RenderEngine::tile_y, type, Scene::view_layers, Render::winx, and Render::winy.
Referenced by do_render_engine(), do_render_full_pipeline(), and RE_PreviewRender().
| void RE_engine_report | ( | RenderEngine * | engine, |
| int | type, | ||
| const char * | msg | ||
| ) |
Definition at line 495 of file engine.c.
References BKE_report(), RenderEngine::re, Render::reports, RenderEngine::reports, and type.
Referenced by workbench_render().
| void RE_engine_set_error_message | ( | RenderEngine * | engine, |
| const char * | msg | ||
| ) |
Definition at line 507 of file engine.c.
References BLI_strdup(), RenderResult::error, MEM_freeN, NULL, RenderEngine::re, RE_AcquireResultRead(), and RE_ReleaseResult().
Referenced by EEVEE_render_init(), and GPENCIL_render_init().
| bool RE_engine_test_break | ( | RenderEngine * | engine | ) |
Definition at line 435 of file engine.c.
References RenderEngine::re, Render::tbh, and Render::test_break.
Referenced by EEVEE_render_draw(), eevee_render_to_image(), engine_render_view_layer(), RE_engine_render(), and workbench_render().
| void RE_engine_update_memory_stats | ( | RenderEngine * | engine, |
| float | mem_used, | ||
| float | mem_peak | ||
| ) |
Definition at line 485 of file engine.c.
References Render::i, RenderStats::mem_peak, RenderStats::mem_used, and RenderEngine::re.
| void RE_engine_update_progress | ( | RenderEngine * | engine, |
| float | progress | ||
| ) |
Definition at line 475 of file engine.c.
References CLAMP, Render::prh, Render::progress, and RenderEngine::re.
Referenced by EEVEE_render_draw().
| void RE_engine_update_render_passes | ( | struct RenderEngine * | engine, |
| struct Scene * | scene, | ||
| struct ViewLayer * | view_layer, | ||
| update_render_passes_cb_t | callback, | ||
| void * | callback_data | ||
| ) |
Definition at line 1071 of file engine.c.
References BLI_mutex_lock(), BLI_mutex_unlock(), callback, NULL, scene, RenderEngine::type, RenderEngineType::update_render_passes, RenderEngine::update_render_passes_cb, RenderEngine::update_render_passes_data, and RenderEngine::update_render_passes_mutex.
Referenced by BKE_view_layer_verify_aov(), cmp_node_rlayer_create_outputs(), DRW_render_to_image(), and render_result_get_pass_templates().
| void RE_engine_update_result | ( | RenderEngine * | engine, |
| struct RenderResult * | result | ||
| ) |
Definition at line 343 of file engine.c.
References RenderEngine::bake, Render::display_update, Render::duh, NULL, RenderEngine::pixels, RenderEngine::re, render_result_merge(), result, and Render::result.
| void RE_engine_update_stats | ( | RenderEngine * | engine, |
| const char * | stats, | ||
| const char * | info | ||
| ) |
Definition at line 448 of file engine.c.
References BLI_snprintf(), BLI_strncpy(), Render::i, RenderStats::infostr, NULL, RenderEngine::re, Render::sdh, Render::stats_draw, RenderStats::statstr, and RenderEngine::text.
Referenced by EEVEE_render_cache(), and EEVEE_render_draw().
| bool RE_engine_use_persistent_data | ( | struct RenderEngine * | engine | ) |
Definition at line 621 of file engine.c.
References RenderEngineType::flag, RenderData::mode, Render::r, R_PERSISTENT_DATA, RenderEngine::re, RE_USE_GPU_CONTEXT, and RenderEngine::type.
Referenced by render_pipeline_free().
| void RE_engines_exit | ( | void | ) |
Definition at line 79 of file engine.c.
References BLI_remlink(), DRW_engines_free(), ListBase::first, MEM_freeN, next, R_engines, RE_INTERNAL, and type.
Referenced by blender::bke::tests::TEST(), and WM_exit_ex().
| RenderEngineType* RE_engines_find | ( | const char * | idname | ) |
Definition at line 108 of file engine.c.
References BLI_findstring(), R_engines, and type.
Referenced by BKE_scene_use_shading_nodes_custom(), BKE_scene_use_spherical_stereo(), check_engine_supports_preview(), check_rendered_viewport_visible(), cmp_node_rlayer_create_outputs(), CTX_data_engine_type(), ED_view3d_engine_type(), node_shader_script_update_exec(), node_shader_script_update_poll(), RE_bake_engine(), RE_bake_has_engine(), RE_engine_render(), screen_render_exec(), screen_render_invoke(), blender::bke::tests::TEST(), view3d_main_region_do_render_draw(), view_layer_add_aov_exec(), and view_layer_remove_aov_exec().
| void RE_engines_init | ( | void | ) |
Definition at line 74 of file engine.c.
References DRW_engines_register().
Referenced by main(), and blender::bke::tests::TEST().
| void RE_engines_register | ( | RenderEngineType * | render_type | ) |
Definition at line 100 of file engine.c.
References BLI_addtail(), RenderEngineType::draw_engine, DRW_engine_register(), and R_engines.
Referenced by DRW_engines_register().
| void RE_layer_load_from_file | ( | struct RenderLayer * | layer, |
| struct ReportList * | reports, | ||
| const char * | filename, | ||
| int | x, | ||
| int | y | ||
| ) |
Definition at line 2664 of file pipeline.c.
References BKE_reportf(), ListBase::first, IB_rect, IB_rectfloat, IMB_allocImBuf(), IMB_float_from_rect(), IMB_freeImBuf(), IMB_loadiffname(), IMB_rectcpy(), RenderPass::name, RenderPass::next, NULL, RenderLayer::passes, RE_PASSNAME_COMBINED, ImBuf::rect, RenderPass::rect, ImBuf::rect_float, RenderLayer::rectx, RenderLayer::recty, RPT_ERROR, STREQ, x, ImBuf::x, y, and ImBuf::y.
| void RE_result_load_from_file | ( | struct RenderResult * | result, |
| struct ReportList * | reports, | ||
| const char * | filename | ||
| ) |
Definition at line 2731 of file pipeline.c.
References BKE_reportf(), NULL, render_result_exr_file_read_path(), result, and RPT_ERROR.
|
extern |
Definition at line 72 of file engine.c.
Referenced by arg_handle_engine_set(), DRW_engines_free(), RE_engines_exit(), RE_engines_find(), RE_engines_register(), and wm_file_read_report().