Blender
V3.3
|
#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_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_USE_NO_IMAGE_SAVE 2048 |
#define | RE_USE_ALEMBIC_PROCEDURAL 4096 |
#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 |
#define | RE_ENGINE_CAN_DRAW 64 |
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 |
Variables | |
ListBase | R_engines |
#define RE_ENGINE_ANIMATION 1 |
Definition at line 58 of file RE_engine.h.
#define RE_ENGINE_CAN_DRAW 64 |
Definition at line 64 of file RE_engine.h.
#define RE_ENGINE_DO_DRAW 4 |
Definition at line 60 of file RE_engine.h.
#define RE_ENGINE_DO_UPDATE 8 |
Definition at line 61 of file RE_engine.h.
#define RE_ENGINE_HIGHLIGHT_TILES 32 |
Definition at line 63 of file RE_engine.h.
#define RE_ENGINE_PREVIEW 2 |
Definition at line 59 of file RE_engine.h.
#define RE_ENGINE_RENDERING 16 |
Definition at line 62 of file RE_engine.h.
#define RE_INTERNAL 1 |
Definition at line 43 of file RE_engine.h.
#define RE_USE_ALEMBIC_PROCEDURAL 4096 |
Definition at line 55 of file RE_engine.h.
#define RE_USE_CUSTOM_FREESTYLE 1024 |
Definition at line 53 of file RE_engine.h.
#define RE_USE_EEVEE_VIEWPORT 16 |
Definition at line 47 of file RE_engine.h.
#define RE_USE_GPU_CONTEXT 512 |
Definition at line 52 of file RE_engine.h.
#define RE_USE_NO_IMAGE_SAVE 2048 |
Definition at line 54 of file RE_engine.h.
#define RE_USE_POSTPROCESS 8 |
Definition at line 46 of file RE_engine.h.
#define RE_USE_PREVIEW 4 |
Definition at line 45 of file RE_engine.h.
#define RE_USE_SHADING_NODES_CUSTOM 64 |
Definition at line 49 of file RE_engine.h.
#define RE_USE_SPHERICAL_STEREO 128 |
Definition at line 50 of file RE_engine.h.
#define RE_USE_STEREO_VIEWPORT 256 |
Definition at line 51 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 119 of file RE_engine.h.
void RE_bake_engine_set_engine_parameters | ( | struct Render * | re, |
struct Main * | bmain, | ||
struct Scene * | scene | ||
) |
Definition at line 806 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 596 of file engine.c.
References RenderEngine::re, and RE_GetActiveRenderView().
void RE_engine_active_view_set | ( | RenderEngine * | engine, |
const char * | viewname | ||
) |
Definition at line 602 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 424 of file engine.c.
References channels(), 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 344 of file engine.c.
References RenderEngine::bake, BLI_addtail(), CLAMP, Render::disprect, RenderEngine::fullresult, RenderEngine::re, RenderResult::rectx, RenderResult::recty, render_result_clone_passes(), render_result_from_bake(), render_result_new(), render_result_passes_allocated_ensure(), result, Render::result, RenderEngine::targets, 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 136 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_v3d(), blender::ed::space_node::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().
Definition at line 1204 of file engine.c.
References BLI_mutex_lock(), BLI_mutex_unlock(), RenderEngineType::draw, Render::engine, Render::engine_draw_mutex, RenderEngine::flag, NULL, RenderEngine::re, RE_ENGINE_CAN_DRAW, and RenderEngine::type.
Referenced by DRW_engine_external_acquire_for_image_editor().
Definition at line 1218 of file engine.c.
References BLI_mutex_unlock(), Render::engine_draw_mutex, and RenderEngine::re.
Referenced by external_draw_scene_do_image().
void RE_engine_end_result | ( | RenderEngine * | engine, |
struct RenderResult * | result, | ||
bool | cancel, | ||
bool | highlight, | ||
bool | merge_results | ||
) |
Definition at line 439 of file engine.c.
References RenderEngine::bake, BLI_remlink(), Render::display_update, Render::duh, Render::engine, engine_tile_highlight_set(), RenderEngine::flag, RenderEngine::fullresult, highlighted_tile_from_result_get(), NULL, Render::r, R_BUTS_PREVIEW, RenderEngine::re, RE_ENGINE_HIGHLIGHT_TILES, re_ensure_passes_allocated_thread_safe(), render_result_free(), render_result_merge(), render_result_to_bake(), result, Render::result, RenderData::scemode, RenderEngine::targets, Render::tbh, Render::test_break, and tile.
Referenced by DRW_render_to_image().
void RE_engine_frame_set | ( | struct RenderEngine * | engine, |
int | frame, | ||
float | subframe | ||
) |
Definition at line 785 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 164 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(), blender::ed::space_node::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 1187 of file engine.c.
References engine_depsgraph_free(), engine_keep_depsgraph(), and RenderEngine::has_grease_pencil.
struct RenderEngine* RE_engine_get | ( | const struct Render * | re | ) |
void RE_engine_get_camera_model_matrix | ( | RenderEngine * | engine, |
struct Object * | camera, | ||
bool | use_spherical_stereo, | ||
float | r_modelmat[16] | ||
) |
Definition at line 620 of file engine.c.
References BKE_camera_multiview_model_matrix(), camera, 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 608 of file engine.c.
References BKE_camera_multiview_shift_x(), camera, NULL, Render::r, RenderEngine::re, and Render::viewname.
Definition at line 642 of file engine.c.
References BLENDER_MAX_THREADS, BLI_mutex_lock(), BLI_mutex_unlock(), GSET_FOREACH_BEGIN, GSET_FOREACH_END, Render::highlighted_tiles, Render::highlighted_tiles_mutex, MEM_mallocN, MEM_reallocN, NULL, tile, and tiles.
Referenced by draw_render_info().
struct RenderData* RE_engine_get_render_data | ( | struct Render * | re | ) |
struct RenderResult* RE_engine_get_result | ( | struct RenderEngine * | engine | ) |
Definition at line 481 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 636 of file engine.c.
References BKE_camera_multiview_spherical_stereo(), camera, NULL, Render::r, and RenderEngine::re.
bool RE_engine_has_render_context | ( | struct RenderEngine * | engine | ) |
bool RE_engine_is_opengl | ( | RenderEngineType * | render_type | ) |
Definition at line 115 of file engine.c.
References RenderEngineType::draw_engine, DRW_engine_render_support(), and NULL.
Referenced by wm_draw_region_bind().
struct RenderPass* RE_engine_pass_by_index_get | ( | struct RenderEngine * | engine, |
const char * | layer_name, | ||
int | index | ||
) |
Definition at line 575 of file engine.c.
References BLI_findlink(), NULL, RenderLayer::passes, RenderEngine::re, RE_AcquireResultRead(), RE_GetRenderLayer(), and RE_ReleaseResult().
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 1171 of file engine.c.
References channels(), 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().
Definition at line 988 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, 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, GPU_backend_supported(), RenderEngine::has_grease_pencil, Render::i, Scene::id, RenderData::mode, ID::name, NULL, RenderResult::passes_allocated, Scene::r, Render::r, R_ANIMATION, R_BUTS_PREVIEW, R_EDGE_FRS, R_EXR_CACHE_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_USE_GPU_CONTEXT, RE_USE_POSTPROCESS, RE_USE_PREVIEW, render_result_exr_file_cache_write(), 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, RenderData::scemode, Render::scene, RenderStats::scene_name, THREAD_LOCK_WRITE, type, Scene::view_layers, Render::winx, and Render::winy.
Referenced by do_render_engine(), do_render_full_pipeline(), and RE_PreviewRender().
void RE_engine_render_context_disable | ( | struct RenderEngine * | engine | ) |
void RE_engine_render_context_enable | ( | struct RenderEngine * | engine | ) |
void RE_engine_report | ( | RenderEngine * | engine, |
int | type, | ||
const char * | msg | ||
) |
Definition at line 548 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 560 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_supports_alembic_procedural | ( | const RenderEngineType * | render_type, |
Scene * | scene | ||
) |
Return true if the RenderEngineType has native support for direct loading of Alembic data. For Cycles, this also checks that the experimental feature set is enabled.
Definition at line 121 of file engine.c.
References BKE_scene_uses_cycles(), BKE_scene_uses_cycles_experimental_features(), RenderEngineType::flag, RE_USE_ALEMBIC_PROCEDURAL, and scene.
Referenced by BKE_cache_file_uses_render_procedural(), and uiTemplateCacheFileProcedural().
bool RE_engine_test_break | ( | RenderEngine * | engine | ) |
Definition at line 488 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_tile_highlight_clear_all | ( | struct RenderEngine * | engine | ) |
Definition at line 1232 of file engine.c.
References BLI_gset_clear(), BLI_mutex_lock(), BLI_mutex_unlock(), RenderEngine::flag, Render::highlighted_tiles, Render::highlighted_tiles_mutex, MEM_freeN, NULL, RenderEngine::re, and RE_ENGINE_HIGHLIGHT_TILES.
void RE_engine_tile_highlight_set | ( | struct RenderEngine * | engine, |
int | x, | ||
int | y, | ||
int | width, | ||
int | height, | ||
bool | highlight | ||
) |
Definition at line 1223 of file engine.c.
References BLI_rcti_init(), engine_tile_highlight_set(), height, tile, width, x, and y.
void RE_engine_update_memory_stats | ( | RenderEngine * | engine, |
float | mem_used, | ||
float | mem_peak | ||
) |
Definition at line 538 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 528 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 1150 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(), and DRW_render_to_image().
void RE_engine_update_result | ( | RenderEngine * | engine, |
struct RenderResult * | result | ||
) |
Definition at line 407 of file engine.c.
References RenderEngine::bake, Render::display_update, Render::duh, NULL, RenderEngine::re, re_ensure_passes_allocated_thread_safe(), render_result_merge(), result, Render::result, and RenderEngine::targets.
void RE_engine_update_stats | ( | RenderEngine * | engine, |
const char * | stats, | ||
const char * | info | ||
) |
Definition at line 501 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 695 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().
Definition at line 69 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 98 of file engine.c.
References BLI_findstring(), R_engines, and type.
Referenced by BKE_cache_file_uses_render_procedural(), 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(), do_write_image_or_movie(), ED_view3d_engine_type(), blender::ed::space_node::node_shader_script_update_exec(), blender::ed::space_node::node_shader_script_update_poll(), RE_bake_engine(), RE_bake_has_engine(), RE_engine_render(), RE_RenderAnim(), screen_render_exec(), screen_render_invoke(), blender::bke::tests::TEST(), view3d_main_region_do_render_draw(), view_layer_add_aov_exec(), view_layer_remove_aov_exec(), and wm_draw_region_bind().
Definition at line 59 of file engine.c.
References DRW_engines_register().
Referenced by main(), and blender::bke::tests::TEST().
Definition at line 64 of file engine.c.
References DRW_engines_register_experimental().
Referenced by main().
void RE_engines_register | ( | RenderEngineType * | render_type | ) |
Definition at line 90 of file engine.c.
References BLI_addtail(), RenderEngineType::draw_engine, DRW_engine_register(), and R_engines.
Referenced by DRW_engines_register(), and DRW_engines_register_experimental().
void RE_layer_load_from_file | ( | struct RenderLayer * | layer, |
struct ReportList * | reports, | ||
const char * | filepath, | ||
int | x, | ||
int | y | ||
) |
Loads in image into a result, size must match x/y offsets are only used on a partial copy when dimensions don't match.
Definition at line 2492 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 * | filepath | ||
) |
Definition at line 2559 of file pipeline.c.
References BKE_reportf(), NULL, render_result_exr_file_read_path(), result, and RPT_ERROR.
|
extern |
Definition at line 57 of file engine.c.
Referenced by arg_handle_engine_set(), drw_registered_engines_free(), RE_engines_exit(), RE_engines_find(), RE_engines_register(), and wm_file_read_report().