diff options
Diffstat (limited to 'source/blender/windowmanager/intern/wm_init_exit.c')
-rw-r--r-- | source/blender/windowmanager/intern/wm_init_exit.c | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index 9750bfd2f7f..ba4a807dbd7 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -107,7 +107,7 @@ #include "UI_interface.h" #include "BLF_api.h" -#include "BLF_translation.h" +#include "BLT_lang.h" #include "GPU_buffers.h" #include "GPU_draw.h" @@ -159,7 +159,9 @@ void WM_init(bContext *C, int argc, const char **argv) BKE_library_callback_free_editor_id_reference_set(WM_main_remove_editor_id_reference); /* library.c */ BKE_blender_callback_test_break_set(wm_window_testbreak); /* blender.c */ BKE_spacedata_callback_id_unref_set(ED_spacedata_id_unref); /* screen.c */ - DAG_editors_update_cb(ED_render_id_flush_update, ED_render_scene_update); /* depsgraph.c */ + DAG_editors_update_cb(ED_render_id_flush_update, + ED_render_scene_update, + ED_render_scene_update_pre); /* depsgraph.c */ ED_spacetypes_init(); /* editors/space_api/spacetype.c */ @@ -167,16 +169,20 @@ void WM_init(bContext *C, int argc, const char **argv) ED_node_init_butfuncs(); BLF_init(11, U.dpi); /* Please update source/gamengine/GamePlayer/GPG_ghost.cpp if you change this */ - BLF_lang_init(); + BLT_lang_init(); /* Enforce loading the UI for the initial homefile */ G.fileflags &= ~G_FILE_NO_UI; + /* reports cant be initialized before the wm, + * but keep before file reading, since that may report errors */ + wm_init_reports(C); + /* get the default database, plus a wm */ wm_homefile_read(C, NULL, G.factory_startup, NULL); - BLF_lang_set(NULL); + BLT_lang_set(NULL); if (!G.background) { /* sets 3D mouse deadzone */ @@ -189,6 +195,10 @@ void WM_init(bContext *C, int argc, const char **argv) GPU_set_anisotropic(U.anisotropic_filter); GPU_set_gpu_mipmapping(U.use_gpu_mipmap); +#ifdef WITH_OPENSUBDIV + openSubdiv_init(); +#endif + UI_init(); } else { @@ -223,14 +233,12 @@ void WM_init(bContext *C, int argc, const char **argv) if (!G.background && !wm_start_with_console) GHOST_toggleConsole(3); - wm_init_reports(C); /* reports cant be initialized before the wm */ - clear_matcopybuf(); ED_render_clear_mtex_copybuf(); // glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - wm_read_history(); + wm_history_file_read(); /* allow a path of "", this is what happens when making a new file */ #if 0 @@ -253,13 +261,24 @@ void WM_init(bContext *C, int argc, const char **argv) /* that prevents loading both the kept session, and the file on the command line */ } else { + /* note, logic here is from wm_file_read_post, + * call functions that depend on Python being initialized. */ + /* normally 'wm_homefile_read' will do this, * however python is not initialized when called from this function. * * unlikely any handlers are set but its possible, * note that recovering the last session does its own callbacks. */ + CTX_wm_window_set(C, CTX_wm_manager(C)->windows.first); + BLI_callback_exec(CTX_data_main(C), NULL, BLI_CB_EVT_VERSION_UPDATE); BLI_callback_exec(CTX_data_main(C), NULL, BLI_CB_EVT_LOAD_POST); + + wm_file_read_report(C); + + if (!G.background) { + CTX_wm_window_set(C, NULL); + } } } @@ -503,7 +522,7 @@ void WM_exit_ext(bContext *C, const bool do_python) #ifdef WITH_INTERNATIONAL BLF_free_unifont(); BLF_free_unifont_mono(); - BLF_lang_free(); + BLT_lang_free(); #endif ANIM_keyingset_infos_exit(); |