178 if (
G.is_rendering) {
273 read_homefile_params.
use_data =
true;
296#ifdef WITH_INPUT_NDOF
298 WM_ndof_deadzone_set(
U.ndof_deadzone);
366 bool use_splash =
false;
369 if (blendfile_path[0] ==
'\0') {
410 const char *imports[] = {
"bpy",
nullptr};
460 BLI_assert(
G.background ? (do_user_exit_actions ==
false) :
true);
466 if (do_user_exit_actions) {
477 if (
BLO_write_file(bmain, filepath, fileflags, &blend_file_write_params,
nullptr)) {
495 if (do_user_exit_actions) {
497 if (
U.runtime.is_dirty) {
507#if defined(WITH_PYTHON) && !defined(WITH_PYTHON_MODULE)
527 const char *imports[] = {
"bpy",
"bpy.utils",
nullptr};
640 (void)do_python_exit;
693 const bool do_user_exit_actions =
G.background ?
false : (exit_code == EXIT_SUCCESS);
697 printf(
"\nBlender quit\n");
Functionality to interact with keying sets.
void BKE_addon_pref_type_free(void)
void BKE_addon_pref_type_init(void)
#define BLENDER_QUIT_FILE
const char * BKE_tempdir_base() ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL
void BKE_tempdir_session_purge()
void BKE_blender_atexit()
void BKE_blender_userdef_data_free(UserDef *userdef, bool clear_fonts)
Blender CLI Generic --command Support.
void BKE_blender_cli_command_free_all()
bool BKE_blendfile_userdef_write_all(ReportList *reports)
void CTX_py_init_set(bContext *C, bool value)
wmWindow * CTX_wm_window(const bContext *C)
void CTX_free(bContext *C)
bool CTX_py_init_get(const bContext *C)
void CTX_wm_window_set(bContext *C, wmWindow *win)
Main * CTX_data_main(const bContext *C)
wmWindowManager * CTX_wm_manager(const bContext *C)
@ G_FLAG_USERPREF_NO_SAVE_ON_EXIT
@ G_DEBUG_GPU_COMPILE_SHADERS
void BKE_icons_init(int first_dyn_id)
void BKE_image_free_unused_gpu_textures()
void BKE_keyconfig_pref_type_init(void)
void BKE_keyconfig_pref_type_free(void)
void BKE_library_callback_remap_editor_id_reference_set(BKE_library_remap_editor_id_reference_cb func)
void BKE_library_callback_free_notifier_reference_set(BKE_library_free_notifier_reference_cb func)
const char * BKE_main_blendfile_path_from_global()
void BKE_mask_clipboard_free(void)
General operations, lookup, etc. for materials.
void BKE_materials_exit()
void BKE_mball_cubeTable_free()
void BKE_preview_images_init()
Depsgraph * BKE_scene_get_depsgraph(const Scene *scene, const ViewLayer *view_layer)
void BKE_region_callback_free_gizmomap_set(void(*callback)(wmGizmoMap *))
void BKE_spacedata_callback_id_remap_set(void(*func)(ScrArea *area, SpaceLink *sl, ID *old_id, ID *new_id))
void BKE_region_callback_refresh_tag_gizmomap_set(void(*callback)(wmGizmoMap *))
void BKE_sound_jack_sync_callback_set(SoundJackSyncCallback callback)
void BKE_sound_jack_scene_update(struct Scene *scene, int mode, double time)
void BKE_sound_exit_once()
void BKE_studiolight_init(void)
void BKE_tracking_clipboard_free(void)
void BKE_vfont_clipboard_free()
#define LISTBASE_FOREACH(type, var, list)
BLI_INLINE bool BLI_listbase_is_empty(const ListBase *lb)
void void BLI_freelistN(ListBase *listbase) ATTR_NONNULL(1)
#define BLI_path_join(...)
char * STRNCPY(char(&dst)[N], const char *src)
void BLI_task_scheduler_exit(void)
void BLI_threadapi_exit(void)
void BLI_timer_free(void)
external writefile.cc function prototypes.
bool BLO_write_file(Main *mainvar, const char *filepath, int write_flags, const BlendFileWriteParams *params, ReportList *reports)
void BLT_lang_set(const char *)
void BPY_python_end(bool do_python_exit)
void BPY_python_reset(bContext *C)
void BPY_python_start(bContext *C, int argc, const char **argv)
bool BPY_run_string_eval(bContext *C, const char *imports[], const char *expr)
#define CLOG_INFO_NOCHECK(clg_ref, format,...)
#define CLG_LOGREF_DECLARE_GLOBAL(var, id)
void COM_deinitialize()
Deinitialize the compositor caches and allocated memory. Use COM_clear_caches to only free the caches...
void DEG_editors_set_update_cb(DEG_EditorUpdateIDCb id_func, DEG_EditorUpdateSceneCb scene_func)
Scene * DEG_get_evaluated_scene(const Depsgraph *graph)
blenloader genfile private function prototypes
void DNA_sdna_current_free(void)
void DRW_gpu_context_destroy()
void DRW_gpu_context_disable_ex(bool restore)
void DRW_gpu_context_create()
void DRW_gpu_context_enable_ex(bool restore)
void ED_node_clipboard_free()
void ED_node_init_butfuncs()
void ED_render_clear_mtex_copybuf()
void ED_preview_free_dbase()
void ED_render_id_flush_update(const DEGEditorUpdateContext *update_ctx, ID *id)
void ED_preview_restart_queue_free()
void ED_render_scene_update(const DEGEditorUpdateContext *update_ctx, bool updated)
void ED_screen_exit(bContext *C, wmWindow *window, bScreen *screen)
void ED_spacetypes_init()
void ED_spacemacros_init()
void ED_undosys_type_free()
void ED_undosys_type_init()
void ED_editors_exit(Main *bmain, bool do_undo_system)
void ED_spacedata_id_remap_single(ScrArea *area, SpaceLink *sl, ID *old_id, ID *new_id)
bool ED_editors_flush_edits(Main *bmain)
GHOST C-API function and type declarations.
bool GHOST_setConsoleWindowState(GHOST_TConsoleWindowState action)
@ GHOST_kConsoleWindowStateShow
@ GHOST_kConsoleWindowStateHideForNonConsoleLaunch
bool GPU_backend_supported()
void GPU_context_begin_frame(GPUContext *ctx)
GPUContext * GPU_context_active_get()
void GPU_context_end_frame(GPUContext *ctx)
void GPU_shader_cache_dir_clear_old()
void GPU_shader_compile_static()
Read Guarded memory(de)allocation.
void UI_interface_tag_script_reload()
CLG_LogRef * WM_LOG_MSGBUS_PUB
CLG_LogRef * WM_LOG_OPERATORS
CLG_LogRef * WM_LOG_EVENTS
CLG_LogRef * WM_LOG_TOOL_GIZMO
CLG_LogRef * WM_LOG_MSGBUS_SUB
#define WM_UI_HANDLER_BREAK
static CLG_LogRef LOG_BLEND
BPy_StructRNA * depsgraph
void ANIM_drivers_copybuf_free()
void ANIM_driver_vars_copybuf_free()
void ED_gpencil_anim_copybuf_free()
void ANIM_fmodifiers_copybuf_free()
void ANIM_fcurves_copybuf_free()
void MEM_freeN(void *vmemh)
void keyingset_infos_exit()
void DRW_cache_free_old_subdiv()
void read_recent_searches_file()
void write_recent_searches_file()
const char * app_template_override
const char * filepath_startup_override
unsigned int use_factory_settings
unsigned int is_first_time
unsigned int use_empty_data
void WM_keyconfig_init(bContext *C)
void wm_init_cursor_data()
wmEventHandler_UI * WM_event_add_ui_handler(const bContext *C, ListBase *handlers, wmUIHandlerFunc handle_fn, wmUIHandlerRemoveFunc remove_fn, void *user_data, const eWM_EventHandlerFlag flag)
void WM_main_remap_editor_id_reference(const blender::bke::id::IDRemapper &mappings)
void WM_main_remove_notifier_reference(const void *reference)
wmOperatorStatus WM_operator_name_call(bContext *C, const char *opstring, blender::wm::OpCallContext context, PointerRNA *properties, const wmEvent *event)
void WM_event_remove_handlers(bContext *C, ListBase *handlers)
void WM_event_add_mousemove(wmWindow *win)
void wm_test_autorun_revert_action_set(wmOperatorType *ot, PointerRNA *ptr)
const char * WM_init_state_app_template_get()
void wm_history_file_read()
void wm_autosave_delete()
void wm_homefile_read_ex(bContext *C, const wmHomeFileRead_Params *params_homefile, ReportList *reports, wmFileReadPost_Params **r_params_file_read_post)
void wm_homefile_read_post(bContext *C, const wmFileReadPost_Params *params_file_read_post)
void wm_gizmogrouptype_init()
void wm_gizmogrouptype_free()
void wm_gizmomaptypes_free()
void WM_gizmomap_tag_refresh(wmGizmoMap *gzmap)
void wm_gizmomap_remove(wmGizmoMap *gzmap)
void WM_gizmoconfig_update_tag_reinit_all()
static void free_openrecent()
void WM_script_tag_reload()
void WM_init_splash(bContext *C)
void WM_init_splash_on_startup(bContext *C)
static int wm_exit_handler(bContext *C, const wmEvent *event, void *userdata)
void WM_exit(bContext *C, const int exit_code)
static bool wm_init_splash_show_on_startup_check()
void WM_exit_ex(bContext *C, const bool do_python_exit, const bool do_user_exit_actions)
void WM_init(bContext *C, int argc, const char **argv)
static bool wm_start_with_console
void wm_exit_schedule_delayed(const bContext *C)
void WM_init_state_start_with_console_set(bool value)
static void sound_jack_sync_callback(Main *bmain, int mode, double time)
static void wm_init_scripts_extensions_once(bContext *C)
void WM_jobs_kill_all(wmWindowManager *wm)
void WM_keyconfig_update_on_startup(wmWindowManager *wm)
void WM_keyconfig_update_postpone_end()
void WM_keyconfig_update_postpone_begin()
void WM_msgbus_types_init()
void wm_operatortype_free()
void wm_operatortypes_register()
void WM_paneltype_clear()
void WM_uilisttype_free()
void WM_uilisttype_init()
void wm_ghost_init_background()
ViewLayer * WM_window_get_active_view_layer(const wmWindow *win)
Scene * WM_window_get_active_scene(const wmWindow *win)
void wm_ghost_init(bContext *C)
bScreen * WM_window_get_active_screen(const wmWindow *win)