diff --git a/examples/allegro5_example/imgui_impl_a5.cpp b/examples/allegro5_example/imgui_impl_a5.cpp index 62f7af672..dddb4c3a0 100644 --- a/examples/allegro5_example/imgui_impl_a5.cpp +++ b/examples/allegro5_example/imgui_impl_a5.cpp @@ -200,7 +200,6 @@ bool ImGui_ImplA5_Init(ALLEGRO_DISPLAY* display) void ImGui_ImplA5_Shutdown() { ImGui_ImplA5_InvalidateDeviceObjects(); - ImGui::Shutdown(); } // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp index 3c9c9770e..11ec724c9 100644 --- a/examples/allegro5_example/main.cpp +++ b/examples/allegro5_example/main.cpp @@ -23,6 +23,7 @@ int main(int, char**) al_register_event_source(queue, al_get_mouse_event_source()); // Setup ImGui binding + ImGui::CreateContext(); ImGui_ImplA5_Init(display); // Setup style @@ -109,6 +110,7 @@ int main(int, char**) // Cleanup ImGui_ImplA5_Shutdown(); + ImGui::DestroyContext(); al_destroy_event_queue(queue); al_destroy_display(display); diff --git a/examples/directx10_example/imgui_impl_dx10.cpp b/examples/directx10_example/imgui_impl_dx10.cpp index 14a47c4af..66b411e47 100644 --- a/examples/directx10_example/imgui_impl_dx10.cpp +++ b/examples/directx10_example/imgui_impl_dx10.cpp @@ -569,7 +569,6 @@ bool ImGui_ImplDX10_Init(void* hwnd, ID3D10Device* device) void ImGui_ImplDX10_Shutdown() { ImGui_ImplDX10_InvalidateDeviceObjects(); - ImGui::Shutdown(); g_pd3dDevice = NULL; g_hWnd = (HWND)0; } diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp index 38f4054ea..8b54fabfb 100644 --- a/examples/directx10_example/main.cpp +++ b/examples/directx10_example/main.cpp @@ -122,6 +122,7 @@ int main(int, char**) UpdateWindow(hwnd); // Setup ImGui binding + ImGui::CreateContext(); ImGui_ImplDX10_Init(hwnd, g_pd3dDevice); // Setup style @@ -204,6 +205,8 @@ int main(int, char**) } ImGui_ImplDX10_Shutdown(); + ImGui::DestroyContext(); + CleanupDeviceD3D(); UnregisterClass(_T("ImGui Example"), wc.hInstance); diff --git a/examples/directx11_example/imgui_impl_dx11.cpp b/examples/directx11_example/imgui_impl_dx11.cpp index 4963fc12e..61860f5c1 100644 --- a/examples/directx11_example/imgui_impl_dx11.cpp +++ b/examples/directx11_example/imgui_impl_dx11.cpp @@ -571,7 +571,6 @@ bool ImGui_ImplDX11_Init(void* hwnd, ID3D11Device* device, ID3D11DeviceContex void ImGui_ImplDX11_Shutdown() { ImGui_ImplDX11_InvalidateDeviceObjects(); - ImGui::Shutdown(); g_pd3dDevice = NULL; g_pd3dDeviceContext = NULL; g_hWnd = (HWND)0; diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp index 79e7bb169..84db742d6 100644 --- a/examples/directx11_example/main.cpp +++ b/examples/directx11_example/main.cpp @@ -125,6 +125,7 @@ int main(int, char**) UpdateWindow(hwnd); // Setup ImGui binding + ImGui::CreateContext(); ImGui_ImplDX11_Init(hwnd, g_pd3dDevice, g_pd3dDeviceContext); // Setup style @@ -207,6 +208,8 @@ int main(int, char**) } ImGui_ImplDX11_Shutdown(); + ImGui::DestroyContext(); + CleanupDeviceD3D(); UnregisterClass(_T("ImGui Example"), wc.hInstance); diff --git a/examples/directx9_example/imgui_impl_dx9.cpp b/examples/directx9_example/imgui_impl_dx9.cpp index a4e676914..af30fbf49 100644 --- a/examples/directx9_example/imgui_impl_dx9.cpp +++ b/examples/directx9_example/imgui_impl_dx9.cpp @@ -288,7 +288,6 @@ bool ImGui_ImplDX9_Init(void* hwnd, IDirect3DDevice9* device) void ImGui_ImplDX9_Shutdown() { ImGui_ImplDX9_InvalidateDeviceObjects(); - ImGui::Shutdown(); g_pd3dDevice = NULL; g_hWnd = 0; } diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp index 09a109d98..64159b9e0 100644 --- a/examples/directx9_example/main.cpp +++ b/examples/directx9_example/main.cpp @@ -75,6 +75,7 @@ int main(int, char**) } // Setup ImGui binding + ImGui::CreateContext(); ImGui_ImplDX9_Init(hwnd, g_pd3dDevice); // Setup style @@ -173,6 +174,8 @@ int main(int, char**) } ImGui_ImplDX9_Shutdown(); + ImGui::DestroyContext(); + if (g_pd3dDevice) g_pd3dDevice->Release(); if (pD3D) pD3D->Release(); UnregisterClass(_T("ImGui Example"), wc.hInstance); diff --git a/examples/marmalade_example/imgui_impl_marmalade.cpp b/examples/marmalade_example/imgui_impl_marmalade.cpp index 36fc8328c..0ce0edc46 100644 --- a/examples/marmalade_example/imgui_impl_marmalade.cpp +++ b/examples/marmalade_example/imgui_impl_marmalade.cpp @@ -207,8 +207,6 @@ void ImGui_Marmalade_InvalidateDeviceObjects() bool ImGui_Marmalade_Init(bool install_callbacks) { - IwGxInit(); - ImGuiIO& io = ImGui::GetIO(); io.KeyMap[ImGuiKey_Tab] = s3eKeyTab; // Keyboard mapping. ImGui will use those indices to peek into the io.KeyDown[] array. io.KeyMap[ImGuiKey_LeftArrow] = s3eKeyLeft; @@ -248,8 +246,6 @@ bool ImGui_Marmalade_Init(bool install_callbacks) void ImGui_Marmalade_Shutdown() { ImGui_Marmalade_InvalidateDeviceObjects(); - ImGui::Shutdown(); - IwGxTerminate(); } void ImGui_Marmalade_NewFrame() diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp index 2b5edb77f..4ad1fe259 100644 --- a/examples/marmalade_example/main.cpp +++ b/examples/marmalade_example/main.cpp @@ -14,7 +14,10 @@ int main(int, char**) { + IwGxInit(); + // Setup ImGui binding + ImGui::CreateContext(); ImGui_Marmalade_Init(true); // Setup style @@ -95,6 +98,8 @@ int main(int, char**) // Cleanup ImGui_Marmalade_Shutdown(); + ImGui::DestroyContext(); + IwGxTerminate(); return 0; } diff --git a/examples/null_example/main.cpp b/examples/null_example/main.cpp index 04c1bda40..f60b8054a 100644 --- a/examples/null_example/main.cpp +++ b/examples/null_example/main.cpp @@ -4,6 +4,7 @@ int main(int, char**) { + ImGui::CreateContext(); ImGuiIO& io = ImGui::GetIO(); // Build atlas @@ -27,7 +28,7 @@ int main(int, char**) ImGui::Render(); } - printf("Shutdown()\n"); - ImGui::Shutdown(); + printf("DestroyContext()\n"); + ImGui::DestroyContext(); return 0; } diff --git a/examples/opengl2_example/imgui_impl_glfw_gl2.cpp b/examples/opengl2_example/imgui_impl_glfw_gl2.cpp index e5fe2f47b..4c450ed5a 100644 --- a/examples/opengl2_example/imgui_impl_glfw_gl2.cpp +++ b/examples/opengl2_example/imgui_impl_glfw_gl2.cpp @@ -246,7 +246,6 @@ bool ImGui_ImplGlfwGL2_Init(GLFWwindow* window, bool install_callbacks) void ImGui_ImplGlfwGL2_Shutdown() { ImGui_ImplGlfwGL2_InvalidateDeviceObjects(); - ImGui::Shutdown(); } void ImGui_ImplGlfwGL2_NewFrame() diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp index 6359f5b62..ef4f876e3 100644 --- a/examples/opengl2_example/main.cpp +++ b/examples/opengl2_example/main.cpp @@ -27,6 +27,7 @@ int main(int, char**) glfwSwapInterval(1); // Enable vsync // Setup ImGui binding + ImGui::CreateContext(); ImGui_ImplGlfwGL2_Init(window, true); // Setup style @@ -105,6 +106,7 @@ int main(int, char**) // Cleanup ImGui_ImplGlfwGL2_Shutdown(); + ImGui::DestroyContext(); glfwTerminate(); return 0; diff --git a/examples/opengl3_example/imgui_impl_glfw_gl3.cpp b/examples/opengl3_example/imgui_impl_glfw_gl3.cpp index a71fc515d..3b39e1853 100644 --- a/examples/opengl3_example/imgui_impl_glfw_gl3.cpp +++ b/examples/opengl3_example/imgui_impl_glfw_gl3.cpp @@ -358,7 +358,6 @@ bool ImGui_ImplGlfwGL3_Init(GLFWwindow* window, bool install_callbacks) void ImGui_ImplGlfwGL3_Shutdown() { ImGui_ImplGlfwGL3_InvalidateDeviceObjects(); - ImGui::Shutdown(); } void ImGui_ImplGlfwGL3_NewFrame() diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp index 6beb855dc..7c29cb712 100644 --- a/examples/opengl3_example/main.cpp +++ b/examples/opengl3_example/main.cpp @@ -32,6 +32,7 @@ int main(int, char**) gl3wInit(); // Setup ImGui binding + ImGui::CreateContext(); ImGui_ImplGlfwGL3_Init(window, true); // Setup style @@ -109,6 +110,7 @@ int main(int, char**) // Cleanup ImGui_ImplGlfwGL3_Shutdown(); + ImGui::DestroyContext(); glfwTerminate(); return 0; diff --git a/examples/sdl_opengl2_example/imgui_impl_sdl_gl2.cpp b/examples/sdl_opengl2_example/imgui_impl_sdl_gl2.cpp index 76def29c3..f937bccad 100644 --- a/examples/sdl_opengl2_example/imgui_impl_sdl_gl2.cpp +++ b/examples/sdl_opengl2_example/imgui_impl_sdl_gl2.cpp @@ -245,7 +245,6 @@ bool ImGui_ImplSdlGL2_Init(SDL_Window* window) void ImGui_ImplSdlGL2_Shutdown() { ImGui_ImplSdlGL2_InvalidateDeviceObjects(); - ImGui::Shutdown(); } void ImGui_ImplSdlGL2_NewFrame(SDL_Window *window) diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp index 21b567a83..115dfc653 100644 --- a/examples/sdl_opengl2_example/main.cpp +++ b/examples/sdl_opengl2_example/main.cpp @@ -33,6 +33,7 @@ int main(int, char**) SDL_GLContext glcontext = SDL_GL_CreateContext(window); // Setup ImGui binding + ImGui::CreateContext(); ImGui_ImplSdlGL2_Init(window); // Setup style @@ -116,6 +117,8 @@ int main(int, char**) // Cleanup ImGui_ImplSdlGL2_Shutdown(); + ImGui::DestroyContext(); + SDL_GL_DeleteContext(glcontext); SDL_DestroyWindow(window); SDL_Quit(); diff --git a/examples/sdl_opengl3_example/imgui_impl_sdl_gl3.cpp b/examples/sdl_opengl3_example/imgui_impl_sdl_gl3.cpp index 35d9cdde1..a8c1363cf 100644 --- a/examples/sdl_opengl3_example/imgui_impl_sdl_gl3.cpp +++ b/examples/sdl_opengl3_example/imgui_impl_sdl_gl3.cpp @@ -356,7 +356,6 @@ bool ImGui_ImplSdlGL3_Init(SDL_Window* window) void ImGui_ImplSdlGL3_Shutdown() { ImGui_ImplSdlGL3_InvalidateDeviceObjects(); - ImGui::Shutdown(); } void ImGui_ImplSdlGL3_NewFrame(SDL_Window* window) diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp index 7ee60389c..3cd07168d 100644 --- a/examples/sdl_opengl3_example/main.cpp +++ b/examples/sdl_opengl3_example/main.cpp @@ -33,6 +33,7 @@ int main(int, char**) gl3wInit(); // Setup ImGui binding + ImGui::CreateContext(); ImGui_ImplSdlGL3_Init(window); // Setup style @@ -115,6 +116,8 @@ int main(int, char**) // Cleanup ImGui_ImplSdlGL3_Shutdown(); + ImGui::DestroyContext(); + SDL_GL_DeleteContext(glcontext); SDL_DestroyWindow(window); SDL_Quit(); diff --git a/examples/vulkan_example/imgui_impl_glfw_vulkan.cpp b/examples/vulkan_example/imgui_impl_glfw_vulkan.cpp index b9e6d78f2..caf0312cd 100644 --- a/examples/vulkan_example/imgui_impl_glfw_vulkan.cpp +++ b/examples/vulkan_example/imgui_impl_glfw_vulkan.cpp @@ -787,7 +787,6 @@ bool ImGui_ImplGlfwVulkan_Init(GLFWwindow* window, bool install_callbacks, Im void ImGui_ImplGlfwVulkan_Shutdown() { ImGui_ImplGlfwVulkan_InvalidateDeviceObjects(); - ImGui::Shutdown(); } void ImGui_ImplGlfwVulkan_NewFrame() diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp index 6c4ef33fe..b75fdaf0d 100644 --- a/examples/vulkan_example/main.cpp +++ b/examples/vulkan_example/main.cpp @@ -615,6 +615,7 @@ int main(int, char**) setup_vulkan(window); // Setup ImGui binding + ImGui::CreateContext(); ImGui_ImplGlfwVulkan_Init_Data init_data = {}; init_data.allocator = g_Allocator; init_data.gpu = g_Gpu; @@ -737,6 +738,7 @@ int main(int, char**) VkResult err = vkDeviceWaitIdle(g_Device); check_vk_result(err); ImGui_ImplGlfwVulkan_Shutdown(); + ImGui::DestroyContext(); cleanup_vulkan(); glfwTerminate();