Blender
V3.3
|
#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 "GPU_context.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 770 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 146 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 712 of file engine.c.
References BKE_scene_frame_get(), BKE_scene_graph_update_for_newframe_ex(), 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 702 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 901 of file engine.c.
References BLI_findstring(), BLI_mutex_lock(), BLI_mutex_unlock(), RenderEngine::depsgraph, Render::dlh, Render::draw_lock, DRW_render_context_disable(), DRW_render_context_enable(), DRW_render_gpencil(), Render::engine, engine_depsgraph_exit(), engine_depsgraph_init(), Render::engine_draw_mutex, RenderEngineType::flag, RenderEngine::flag, G, RenderEngine::has_grease_pencil, Render::main, ViewLayer::name, NULL, RenderResult::passes_allocated, RenderEngine::re, RE_ENGINE_CAN_DRAW, 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 313 of file engine.c.
References BLI_ghashutil_inthash_v4_cmp, BLI_ghashutil_inthash_v4_p, BLI_gset_ensure_p_ex(), BLI_gset_new(), BLI_gset_remove(), BLI_mutex_lock(), BLI_mutex_unlock(), RenderEngine::flag, Render::highlighted_tiles, Render::highlighted_tiles_mutex, MEM_freeN, MEM_mallocN, NULL, RenderEngine::re, RE_ENGINE_HIGHLIGHT_TILES, and tile.
Referenced by RE_engine_end_result(), and RE_engine_tile_highlight_set().
|
static |
Definition at line 305 of file engine.c.
Referenced by 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 819 of file engine.c.
References RenderEngine::bake, BKE_reports_contain(), BLI_strncpy(), RenderData::cfra, RenderStats::cfra, depsgraph, RenderEngine::depsgraph, RenderData::engine, Render::engine, engine_depsgraph_free(), RenderEngine::flag, G, Render::i, Scene::id, image(), RenderEngine::image_id, BakeTargets::images, BakeTargets::images_num, Render::main, ID::name, NULL, RenderEngine::object_id, RenderEngine::pixels, Scene::r, Render::r, RenderEngine::re, RE_engine_create(), RE_engine_free(), RE_ENGINE_RENDERING, RE_engines_find(), Render::reports, RenderEngine::resolution_x, RenderEngine::resolution_y, result, RenderEngine::result, RPT_ERROR, Render::scene, RenderStats::scene_name, RenderEngine::targets, type, Render::winx, and Render::winy.
Referenced by bake().
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().
Definition at line 813 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 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().
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, |
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 | ( | 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 | ( | 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 Render * | re | ) |
Definition at line 1199 of file engine.c.
References Render::engine, and RenderEngine::re.
Referenced by external_draw_scene_do_image().
void RE_engine_get_camera_model_matrix | ( | RenderEngine * | engine, |
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, |
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().
RenderData* RE_engine_get_render_data | ( | Render * | re | ) |
RenderResult* RE_engine_get_result | ( | 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, |
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 | ( | RenderEngine * | engine | ) |
Definition at line 1256 of file engine.c.
References NULL, RenderEngine::re, and RE_gl_context_get().
Referenced by BlenderDisplayDriver::gl_context_create().
Definition at line 110 of file engine.c.
References Render::engine, RenderEngineType::render, and RenderEngine::type.
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().
RenderPass* RE_engine_pass_by_index_get | ( | 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 | ( | RenderEngine * | engine | ) |
Definition at line 1270 of file engine.c.
References DRW_render_context_disable(), and RenderEngine::re.
Referenced by BlenderDisplayDriver::gl_context_disable().
void RE_engine_render_context_enable | ( | RenderEngine * | engine | ) |
Definition at line 1265 of file engine.c.
References DRW_render_context_enable(), and RenderEngine::re.
Referenced by BlenderDisplayDriver::gl_context_enable().
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 | ( | 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 | ( | 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, |
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 | ( | 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().
Definition at line 396 of file engine.c.
References BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), RenderResult::passes_allocated, render_result_passes_allocated_ensure(), Render::result, Render::resultmutex, and THREAD_LOCK_WRITE.
Referenced by RE_engine_end_result(), and RE_engine_update_result().
|
static |
Definition at line 181 of file engine.c.
References RenderEngine::bake, BLI_addtail(), BakeTargets::channels_num, image(), RenderEngine::image_id, BakeTargets::images, int_as_float(), RenderResult::layers, MEM_callocN, RenderLayer::name, RenderEngine::object_id, offset, RenderEngine::pixels, RE_PASSNAME_COMBINED, RenderPass::rect, RenderLayer::rectx, RenderResult::rectx, RenderLayer::recty, RenderResult::recty, render_layer_add_pass(), STRNCPY, RenderEngine::targets, RenderResult::tilerect, w(), x, rcti::xmax, rcti::xmin, y, rcti::ymax, and rcti::ymin.
Referenced by RE_engine_begin_result().
|
static |
Definition at line 252 of file engine.c.
References RenderEngine::bake, BakeTargets::channels_num, ListBase::first, float(), image(), BakeTargets::images, BakeTargets::images_num, RenderResult::layers, RenderLayer::name, RenderEngine::object_id, offset, RenderEngine::pixels, RE_pass_find_by_name(), RE_PASSNAME_COMBINED, RenderPass::rect, BakeImage::render_layer_name, result, RenderEngine::result, STREQ, RenderEngine::targets, RenderResult::tilerect, w(), x, rcti::xmax, rcti::xmin, y, rcti::ymax, and rcti::ymin.
Referenced by RE_engine_end_result().
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().