|
Blender
V2.93
|
#include <stddef.h>#include <stdlib.h>#include <string.h>#include "MEM_guardedalloc.h"#include "BLT_translation.h"#include "BLI_ghash.h"#include "BLI_listbase.h"#include "BLI_math_bits.h"#include "BLI_rect.h"#include "BLI_string.h"#include "BLI_utildefines.h"#include "DNA_object_types.h"#include "BKE_camera.h"#include "BKE_colortools.h"#include "BKE_global.h"#include "BKE_layer.h"#include "BKE_node.h"#include "BKE_report.h"#include "BKE_scene.h"#include "DEG_depsgraph.h"#include "DEG_depsgraph_debug.h"#include "DEG_depsgraph_query.h"#include "RNA_access.h"#include "RE_bake.h"#include "RE_engine.h"#include "RE_pipeline.h"#include "DRW_engine.h"#include "initrender.h"#include "pipeline.h"#include "render_result.h"#include "render_types.h"Go to the source code of this file.
Variables | |
| ListBase | R_engines = {NULL, NULL} |
|
static |
Definition at line 696 of file engine.c.
References DEG_ids_clear_recalc(), RenderEngine::depsgraph, engine_depsgraph_free(), and engine_keep_depsgraph().
Referenced by engine_render_view_layer().
|
static |
Definition at line 143 of file engine.c.
References DEG_graph_free(), RenderEngine::depsgraph, DRW_render_context_disable(), DRW_render_context_enable(), RenderEngineType::flag, NULL, RenderEngine::re, RE_USE_GPU_CONTEXT, and RenderEngine::type.
Referenced by engine_depsgraph_exit(), engine_depsgraph_init(), RE_bake_engine(), RE_engine_free(), RE_engine_free_blender_memory(), and RE_engine_render().
|
static |
Definition at line 638 of file engine.c.
References BKE_scene_graph_update_for_newframe_ex(), CFRA, DAG_EVAL_RENDER, DEG_debug_name_set(), DEG_evaluate_on_framechange(), DEG_get_bmain(), DEG_get_input_scene(), DEG_get_input_view_layer(), DEG_graph_new(), DEG_graph_relations_update(), DEG_graph_replace_owners(), DEG_graph_tag_relations_update(), depsgraph, RenderEngine::depsgraph, DRW_render_check_grease_pencil(), DRW_render_context_disable(), DRW_render_context_enable(), engine_depsgraph_free(), RenderEngineType::flag, RenderEngine::has_grease_pencil, Render::main, NULL, Render::r, R_BUTS_PREVIEW, RenderEngine::re, RE_FreePersistentData(), RE_USE_GPU_CONTEXT, RenderData::scemode, scene, Render::scene, and RenderEngine::type.
Referenced by engine_render_view_layer().
|
static |
Definition at line 628 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 engine_depsgraph_exit(), RE_engine_free_blender_memory(), and RE_engine_render().
|
static |
Definition at line 834 of file engine.c.
References BLI_findstring(), RenderEngine::depsgraph, Render::dlh, RenderResult::do_exr_tile, Render::draw_lock, DRW_render_context_disable(), DRW_render_context_enable(), DRW_render_gpencil(), engine_depsgraph_exit(), engine_depsgraph_init(), RenderEngineType::flag, RenderEngine::has_grease_pencil, Render::main, ViewLayer::name, NULL, RenderEngine::re, RE_engine_test_break(), RE_USE_GPU_CONTEXT, RenderEngineType::render, Render::result, Render::scene, RenderEngine::type, RenderEngineType::update, and Scene::view_layers.
Referenced by RE_engine_render().
|
static |
Definition at line 271 of file engine.c.
References BLI_ghash_lookup(), BLI_rcti_translate(), Render::disprect, Render::parts, result, rcti::xmin, and rcti::ymin.
Referenced by RE_engine_begin_result(), and RE_engine_end_result().
| bool RE_bake_engine | ( | Render * | re, |
| Depsgraph * | depsgraph, | ||
| Object * | object, | ||
| const int | object_id, | ||
| const BakePixel | pixel_array[], | ||
| const BakeTargets * | targets, | ||
| const eScenePassType | pass_type, | ||
| const int | pass_filter, | ||
| float | result[] | ||
| ) |
Definition at line 744 of file engine.c.
References RenderEngine::bake, BKE_reports_contain(), BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), BLI_strncpy(), RenderData::cfra, RenderStats::cfra, depsgraph, RenderEngine::depsgraph, RenderEngine::depth, RenderData::engine, Render::engine, engine_depsgraph_free(), RenderEngine::flag, G, BakeImage::height, RenderEngine::height, Render::i, Scene::id, BakeTargets::images, Render::main, ID::name, NULL, BakeTargets::num_channels, BakeTargets::num_images, RenderEngine::object_id, BakeImage::offset, Render::partsmutex, RenderEngine::pixels, Scene::r, Render::r, RenderEngine::re, RE_engine_create(), RE_engine_free(), RE_ENGINE_RENDERING, RE_engines_find(), RE_parts_free(), RE_parts_init(), Render::reports, RenderEngine::resolution_x, RenderEngine::resolution_y, result, RenderEngine::result, RPT_ERROR, Render::scene, RenderStats::scene_name, THREAD_LOCK_WRITE, RenderEngine::tile_x, RenderEngine::tile_y, RenderData::tilex, RenderData::tiley, type, BakeImage::width, RenderEngine::width, Render::winx, and Render::winy.
Referenced by bake().
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().
| bool RE_bake_has_engine | ( | Render * | re | ) |
Definition at line 738 of file engine.c.
References RenderData::engine, NULL, Render::r, RE_engines_find(), and type.
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().
| 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, |
| 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 | ( | 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 | ( | 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, |
| 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, |
| 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().
| RenderData* RE_engine_get_render_data | ( | Render * | re | ) |
Definition at line 616 of file engine.c.
References Render::r.
Referenced by draw_render_info(), and render_border_exec().
| RenderResult* RE_engine_get_result | ( | 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, |
| 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 Render * | re | ) |
Definition at line 120 of file engine.c.
References Render::engine, RenderEngineType::render, and RenderEngine::type.
Referenced by validate_render_settings().
| 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 | ( | 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, |
| 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 | ( | 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().
|
static |
Definition at line 178 of file engine.c.
References RenderEngine::bake, BLI_addtail(), RenderEngine::depth, float(), int_as_float(), RenderResult::layers, MEM_callocN, RenderEngine::object_id, RenderEngine::pixels, RE_PASSNAME_COMBINED, RenderPass::rect, RenderLayer::rectx, RenderResult::rectx, RenderLayer::recty, RenderResult::recty, render_layer_add_pass(), RenderEngine::result, size(), RenderResult::tilerect, w(), RenderEngine::width, x, rcti::xmax, rcti::xmin, y, rcti::ymax, and rcti::ymin.
Referenced by RE_engine_begin_result().
|
static |
Definition at line 246 of file engine.c.
References RenderEngine::bake, RenderEngine::depth, ListBase::first, float(), RenderResult::layers, RE_pass_find_by_name(), RE_PASSNAME_COMBINED, RenderPass::rect, RenderEngine::result, size(), RenderResult::tilerect, w(), RenderEngine::width, x, rcti::xmax, rcti::xmin, y, rcti::ymax, and rcti::ymin.
Referenced by RE_engine_end_result().
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().