OpenSubdiv: Commit of OpenSubdiv integration into Blender
[blender.git] / source / blender / windowmanager / intern / wm_init_exit.c
index 8778929ae0828c21b6e644d269cfc2bbdb1a7fa9..ad7044c62187c9d4b3a1612c90f1192727a9901a 100644 (file)
@@ -58,6 +58,7 @@
 #include "BKE_screen.h"
 #include "BKE_DerivedMesh.h"
 #include "BKE_global.h"
+#include "BKE_icons.h"
 #include "BKE_library.h"
 #include "BKE_main.h"
 #include "BKE_mball_tessellate.h"
 #include "BKE_sound.h"
 #include "COM_compositor.h"
 
+#ifdef WITH_OPENSUBDIV
+#  include "opensubdiv_capi.h"
+#endif
+
 static void wm_init_reports(bContext *C)
 {
        ReportList *reports = CTX_wm_reports(C);
@@ -170,20 +175,30 @@ void WM_init(bContext *C, int argc, const char **argv)
        /* get the default database, plus a wm */
        wm_homefile_read(C, NULL, G.factory_startup, NULL);
        
+
        BLF_lang_set(NULL);
 
        if (!G.background) {
+               /* sets 3D mouse deadzone */
+               WM_ndof_deadzone_set(U.ndof_deadzone);
+
                GPU_init();
 
                GPU_set_mipmap(!(U.gameflags & USER_DISABLE_MIPMAP));
                GPU_set_linear_mipmap(true);
                GPU_set_anisotropic(U.anisotropic_filter);
                GPU_set_gpu_mipmapping(U.use_gpu_mipmap);
+
+               UI_init();
+       }
+       else {
+               /* Note: Currently only inits icons, which we now want in background mode too
+                * (scripts could use those in background processing...).
+                * In case we do more later, we may need to pass a 'background' flag.
+                * Called from 'UI_init' above */
+               BKE_icons_init(1);
        }
 
-       /* Note: Currently only inits icons, which we now want in background mode too (scripts could use those in background
-        *       processing...). In case we do more later, we may need to pass a 'background' flag. */
-       UI_init();
 
        ED_spacemacros_init();
 
@@ -514,6 +529,10 @@ void WM_exit_ext(bContext *C, const bool do_python)
        (void)do_python;
 #endif
 
+#ifdef WITH_OPENSUBDIV
+       openSubdiv_cleanup();
+#endif
+
        if (!G.background) {
                GPU_global_buffer_pool_free();
                GPU_free_unused_buffers();
@@ -543,7 +562,7 @@ void WM_exit_ext(bContext *C, const bool do_python)
 
        if (MEM_get_memory_blocks_in_use() != 0) {
                size_t mem_in_use = MEM_get_memory_in_use() + MEM_get_memory_in_use();
-               printf("Error: Not freed memory blocks: %d, total unfreed memory %f MB\n",
+               printf("Error: Not freed memory blocks: %u, total unfreed memory %f MB\n",
                       MEM_get_memory_blocks_in_use(),
                       (double)mem_in_use / 1024 / 1024);
                MEM_printmemlist();