15 # define WIN32_LEAN_AND_MEAN
189 if (
G.is_rendering) {
295 .use_factory_settings =
G.factory_startup,
296 .use_empty_data =
false,
297 .filepath_startup_override =
NULL,
301 ¶ms_file_read_post);
319 #ifdef WITH_INPUT_NDOF
321 WM_ndof_deadzone_set(
U.ndof_deadzone);
392 static void wait_for_console_key(
void)
394 HANDLE hConsoleInput = GetStdHandle(STD_INPUT_HANDLE);
396 if (!
ELEM(hConsoleInput,
NULL, INVALID_HANDLE_VALUE) && FlushConsoleInputBuffer(hConsoleInput)) {
401 if (!ReadConsoleInput(hConsoleInput, &
buffer, 1, &ignored)) {
405 if (
buffer.EventType == KEY_EVENT) {
446 if (undo_memfile !=
NULL) {
461 printf(
"Saved session recovery to '%s'\n", filepath);
477 if (
U.runtime.is_dirty) {
487 #if defined(WITH_PYTHON) && !defined(WITH_PYTHON_MODULE)
543 #ifdef WITH_COMPOSITOR
650 printf(
"\nBlender quit\n");
655 printf(
"Press any key to exit . . .\n\n");
656 wait_for_console_key();
660 exit(
G.is_break ==
true);
void BKE_addon_pref_type_free(void)
void BKE_addon_pref_type_init(void)
void BKE_appdir_exit(void)
void BKE_tempdir_session_purge(void)
#define BLENDER_QUIT_FILE
const char * BKE_tempdir_base(void)
void BKE_blender_userdef_data_free(struct UserDef *userdef, bool clear_fonts)
void BKE_blender_atexit(void)
void BKE_blender_free(void)
bool BKE_blendfile_userdef_write_all(struct ReportList *reports)
bool CTX_py_init_get(bContext *C)
struct wmWindowManager * CTX_wm_manager(const bContext *C)
void CTX_free(bContext *C)
void CTX_wm_window_set(bContext *C, struct wmWindow *win)
struct ReportList * CTX_wm_reports(const bContext *C)
struct Main * CTX_data_main(const bContext *C)
struct wmWindow * CTX_wm_window(const bContext *C)
@ G_FLAG_USERPREF_NO_SAVE_ON_EXIT
void BKE_icons_init(int first_dyn_id)
void BKE_image_free_unused_gpu_textures(void)
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)
void BKE_mask_clipboard_free(void)
General operations, lookup, etc. for materials.
void BKE_materials_exit(void)
void BKE_material_copybuf_clear(void)
void BKE_mball_cubeTable_free(void)
void BKE_node_clipboard_free(void)
void BKE_reports_clear(ReportList *reports)
void BKE_reports_init(ReportList *reports, int flag)
struct Depsgraph * BKE_scene_get_depsgraph(const struct Scene *scene, const struct ViewLayer *view_layer)
void BKE_spacedata_callback_id_remap_set(void(*func)(struct ScrArea *area, struct SpaceLink *sl, struct ID *old_id, struct ID *new_id))
void BKE_region_callback_refresh_tag_gizmomap_set(void(*callback)(struct wmGizmoMap *))
void BKE_region_callback_free_gizmomap_set(void(*callback)(struct wmGizmoMap *))
void BKE_sound_jack_sync_callback_set(SoundJackSyncCallback callback)
void BKE_sound_lock(void)
void BKE_sound_jack_scene_update(struct Scene *scene, int mode, double time)
void BKE_sound_unlock(void)
void BKE_sound_exit(void)
void BKE_studiolight_init(void)
void BKE_subdiv_init(void)
void BKE_subdiv_exit(void)
void BKE_tracking_clipboard_free(void)
void BKE_vfont_clipboard_free(void)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
#define LISTBASE_FOREACH(type, var, list)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_join_dirfile(char *__restrict dst, size_t maxlen, const char *__restrict dir, const char *__restrict file) ATTR_NONNULL()
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
void BLI_task_scheduler_exit(void)
void BLI_threadapi_exit(void)
void BLI_timer_free(void)
bool BLO_memfile_write_file(struct MemFile *memfile, const char *filepath)
external writefile.c function prototypes.
bool BLO_write_file(struct Main *mainvar, const char *filepath, int write_flags, const struct BlendFileWriteParams *params, struct ReportList *reports)
void BLT_lang_set(const char *)
void BPY_python_reset(struct bContext *C)
void BPY_python_start(struct bContext *C, int argc, const char **argv)
void BPY_python_end(void)
bool BPY_run_string_eval(struct bContext *C, const char *imports[], const char *expr)
void COM_deinitialize(void)
Deinitialize the compositor caches and allocated memory. Use COM_clear_caches to only free the caches...
struct Depsgraph Depsgraph
void DEG_editors_set_update_cb(DEG_EditorUpdateIDCb id_func, DEG_EditorUpdateSceneCb scene_func)
struct Scene * DEG_get_evaluated_scene(const struct Depsgraph *graph)
blenloader genfile private function prototypes
void DNA_sdna_current_free(void)
void DRW_opengl_context_create(void)
void DRW_subdiv_free(void)
void DRW_opengl_context_disable_ex(bool restore)
void DRW_opengl_context_enable_ex(bool restore)
void DRW_opengl_context_destroy(void)
void ED_assetlist_storage_exit(void)
void ED_node_init_butfuncs(void)
void ED_preview_free_dbase(void)
void ED_render_id_flush_update(const struct DEGEditorUpdateContext *update_ctx, struct ID *id)
void ED_render_clear_mtex_copybuf(void)
void ED_preview_restart_queue_free(void)
void ED_render_scene_update(const struct DEGEditorUpdateContext *update_ctx, bool updated)
void ED_screen_exit(struct bContext *C, struct wmWindow *window, struct bScreen *screen)
void ED_spacetypes_init(void)
void ED_spacemacros_init(void)
struct MemFile * ED_undosys_stack_memfile_get_active(struct UndoStack *ustack)
void ED_undosys_type_free(void)
void ED_undosys_type_init(void)
void ED_editors_exit(struct Main *bmain, bool do_undo_system)
bool ED_editors_flush_edits(struct Main *bmain)
void ED_spacedata_id_remap_single(struct ScrArea *area, struct SpaceLink *sl, struct ID *old_id, struct ID *new_id)
GHOST C-API function and type declarations.
bool GHOST_setConsoleWindowState(GHOST_TConsoleWindowState action)
GHOST_TSuccess GHOST_DisposeSystemPaths(void)
GHOST_TSuccess GHOST_CreateSystemPaths(void)
@ GHOST_kConsoleWindowStateShow
@ GHOST_kConsoleWindowStateHideForNonConsoleLaunch
void GPU_render_begin(void)
void GPU_context_begin_frame(GPUContext *ctx)
GPUContext * GPU_context_active_get(void)
void GPU_context_end_frame(GPUContext *ctx)
bool GPU_backend_supported(void)
void GPU_render_end(void)
void GPU_pass_cache_free(void)
void GPU_pass_cache_init(void)
void IMB_thumb_clear_translations(void)
Read Guarded memory(de)allocation.
void UI_interface_tag_script_reload(void)
struct CLG_LogRef * WM_LOG_TOOLS
struct CLG_LogRef * WM_LOG_MSGBUS_SUB
struct CLG_LogRef * WM_LOG_EVENTS
struct CLG_LogRef * WM_LOG_HANDLERS
struct CLG_LogRef * WM_LOG_KEYMAPS
struct CLG_LogRef * WM_LOG_MSGBUS_PUB
struct CLG_LogRef * WM_LOG_OPERATORS
#define WM_UI_HANDLER_BREAK
void SEQ_clipboard_free(void)
const Depsgraph * depsgraph
SyclQueue void void size_t num_bytes void
void ANIM_driver_vars_copybuf_free(void)
void ANIM_drivers_copybuf_free(void)
void ED_gpencil_anim_copybuf_free(void)
void RE_engines_exit(void)
void ANIM_fmodifiers_copybuf_free(void)
void ED_gpencil_strokes_copybuf_free(void)
ccl_global float * buffer
void ANIM_fcurves_copybuf_free(void)
void ANIM_keyingset_infos_exit(void)
void(* MEM_freeN)(void *vmemh)
void RE_FreeAllRender(void)
struct ReportList reports
struct UndoStack * undo_stack
void wm_init_cursor_data(void)
void wm_dropbox_free(void)
wmEventHandler_UI * WM_event_add_ui_handler(const bContext *C, ListBase *handlers, wmUIHandlerFunc handle_fn, wmUIHandlerRemoveFunc remove_fn, void *user_data, const char flag)
void WM_main_remap_editor_id_reference(const IDRemapper *mappings)
void WM_main_remove_notifier_reference(const void *reference)
int WM_operator_name_call(bContext *C, const char *opstring, wmOperatorCallContext 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)
void wm_homefile_read_ex(bContext *C, const struct wmHomeFileRead_Params *params_homefile, ReportList *reports, struct wmFileReadPost_Params **r_params_file_read_post)
void wm_autosave_delete(void)
const char * WM_init_state_app_template_get(void)
void wm_homefile_read_post(struct bContext *C, const struct wmFileReadPost_Params *params_file_read_post)
void wm_history_file_read(void)
void wm_gizmogrouptype_free(void)
void wm_gizmogrouptype_init(void)
void wm_gizmomaptypes_free(void)
void WM_gizmomap_tag_refresh(wmGizmoMap *gzmap)
void wm_gizmomap_remove(wmGizmoMap *gzmap)
void wm_gizmotype_init(void)
void wm_gizmotype_free(void)
static void wm_init_reports(bContext *C)
void WM_init_splash(bContext *C)
void WM_exit_ex(bContext *C, const bool do_python)
CLG_LOGREF_DECLARE_GLOBAL(WM_LOG_OPERATORS, "wm.operator")
static void wm_free_reports(wmWindowManager *wm)
static int wm_exit_handler(bContext *C, const wmEvent *event, void *userdata)
static bool opengl_is_init
void WM_exit(bContext *C)
Main exit function to close Blender ordinarily.
static void free_openrecent(void)
void WM_script_tag_reload(void)
void WM_init_opengl(void)
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)
void WM_jobs_kill_all(wmWindowManager *wm)
void WM_msgbus_types_init(void)
void wm_operatortype_free(void)
void wm_operatortype_init(void)
void wm_operatortypes_register(void)
void WM_paneltype_init(void)
void WM_paneltype_clear(void)
void wm_surfaces_free(void)
void WM_uilisttype_free(void)
void WM_uilisttype_init(void)
bScreen * WM_window_get_active_screen(const wmWindow *win)
ViewLayer * WM_window_get_active_view_layer(const wmWindow *win)
void wm_ghost_init(bContext *C)
Scene * WM_window_get_active_scene(const wmWindow *win)