diff --git a/examples/ggwave-common-sdl2.cpp b/examples/ggwave-common-sdl2.cpp index aeb4a47..c57ad42 100644 --- a/examples/ggwave-common-sdl2.cpp +++ b/examples/ggwave-common-sdl2.cpp @@ -4,8 +4,6 @@ #include "ggwave-common.h" -#include - #include #include @@ -282,33 +280,3 @@ bool GGWave_deinit() { return true; } - -bool ImGui_beginFrame(SDL_Window * window) { - SDL_Event event; - while (SDL_PollEvent(&event)) - { - ImGui_ProcessEvent(&event); - if (event.type == SDL_QUIT) return false; - if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_CLOSE && event.window.windowID == SDL_GetWindowID(window)) return false; - } - - ImGui_NewFrame(window); - - return true; -} - -bool ImGui_endFrame(SDL_Window * window) { - // Rendering - int display_w, display_h; - SDL_GetWindowSize(window, &display_w, &display_h); - glViewport(0, 0, display_w, display_h); - glClearColor(0.0f, 0.0f, 0.0f, 0.4f); - glClear(GL_COLOR_BUFFER_BIT); - - ImGui::Render(); - ImGui_RenderDrawData(ImGui::GetDrawData()); - - SDL_GL_SwapWindow(window); - - return true; -} diff --git a/examples/ggwave-common-sdl2.h b/examples/ggwave-common-sdl2.h index db8c91f..2232d9d 100644 --- a/examples/ggwave-common-sdl2.h +++ b/examples/ggwave-common-sdl2.h @@ -13,8 +13,3 @@ bool GGWave_init(const int playbackId, const int captureId); GGWave * GGWave_instance(); bool GGWave_mainLoop(); bool GGWave_deinit(); - -// ImGui helpers - -bool ImGui_beginFrame(SDL_Window * window); -bool ImGui_endFrame(SDL_Window * window); diff --git a/examples/ggwave-gui/common.h b/examples/ggwave-gui/common.h index 2ace4c4..fd1577a 100644 --- a/examples/ggwave-gui/common.h +++ b/examples/ggwave-gui/common.h @@ -559,8 +559,6 @@ void deinitMain(std::thread & worker) { g_isRunning = false; worker.join(); - GGWave_deinit(); - // Cleanup ImGui_Shutdown(); ImGui::DestroyContext(); diff --git a/examples/ggwave-gui/main.cpp b/examples/ggwave-gui/main.cpp index d48005b..b300f6b 100644 --- a/examples/ggwave-gui/main.cpp +++ b/examples/ggwave-gui/main.cpp @@ -1,5 +1,44 @@ #include "common.h" +#include + +#include + +// ImGui helpers + +bool ImGui_beginFrame(SDL_Window * window); +bool ImGui_endFrame(SDL_Window * window); + +bool ImGui_beginFrame(SDL_Window * window) { + SDL_Event event; + while (SDL_PollEvent(&event)) + { + ImGui_ProcessEvent(&event); + if (event.type == SDL_QUIT) return false; + if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_CLOSE && event.window.windowID == SDL_GetWindowID(window)) return false; + } + + ImGui_NewFrame(window); + + return true; +} + +bool ImGui_endFrame(SDL_Window * window) { + // Rendering + int display_w, display_h; + SDL_GetWindowSize(window, &display_w, &display_h); + glViewport(0, 0, display_w, display_h); + glClearColor(0.0f, 0.0f, 0.0f, 0.4f); + glClear(GL_COLOR_BUFFER_BIT); + + ImGui::Render(); + ImGui_RenderDrawData(ImGui::GetDrawData()); + + SDL_GL_SwapWindow(window); + + return true; +} + static SDL_Window * g_window; static void * g_gl_context; @@ -49,6 +88,8 @@ int main(int argc, char** argv) { deinitMain(worker); + GGWave_deinit(); + SDL_GL_DeleteContext(g_gl_context); SDL_DestroyWindow(g_window); SDL_Quit();