diff --git a/r5dev/engine/sys_mainwind.cpp b/r5dev/engine/sys_mainwind.cpp index 6ecf45bc..493930ba 100644 --- a/r5dev/engine/sys_mainwind.cpp +++ b/r5dev/engine/sys_mainwind.cpp @@ -27,6 +27,9 @@ void CGame::PlayStartupVideos(void) //----------------------------------------------------------------------------- int CGame::WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { + if (!g_bImGuiInitialized) + return v_CGame__WindowProc(hWnd, uMsg, wParam, lParam); + ImGui_ImplWin32_WndProcHandler(hWnd, uMsg, wParam, lParam); if (uMsg == WM_KEYDOWN || uMsg == WM_SYSKEYDOWN) diff --git a/r5dev/windows/id3dx.cpp b/r5dev/windows/id3dx.cpp index 91dbc968..d4fe27a0 100644 --- a/r5dev/windows/id3dx.cpp +++ b/r5dev/windows/id3dx.cpp @@ -31,7 +31,8 @@ typedef BOOL(WINAPI* IPostMessageA)(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM l typedef BOOL(WINAPI* IPostMessageW)(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); /////////////////////////////////////////////////////////////////////////////////// -static BOOL s_bInitialized = FALSE; +extern BOOL g_bImGuiInitialized = FALSE; +extern UINT g_nWindowRect[2] = { NULL, NULL }; /////////////////////////////////////////////////////////////////////////////////// static IPostMessageA s_oPostMessageA = NULL; @@ -131,11 +132,11 @@ void DrawImGui() HRESULT __stdcall Present(IDXGISwapChain* pSwapChain, UINT nSyncInterval, UINT nFlags) { - if (!s_bInitialized) + if (!g_bImGuiInitialized) { ImGui_Init(); g_ThreadRenderThreadID = GetCurrentThreadId(); - s_bInitialized = true; + g_bImGuiInitialized = true; } DrawImGui(); @@ -385,10 +386,10 @@ void DirectX_Shutdown() /////////////////////////////////////////////////////////////////////////////// // Shutdown ImGui - if (s_bInitialized) + if (g_bImGuiInitialized) { ImGui_Shutdown(); - s_bInitialized = false; + g_bImGuiInitialized = false; } } diff --git a/r5dev/windows/id3dx.h b/r5dev/windows/id3dx.h index a151837f..9567e418 100644 --- a/r5dev/windows/id3dx.h +++ b/r5dev/windows/id3dx.h @@ -22,7 +22,8 @@ typedef HRESULT(__stdcall* IDXGIResizeBuffers) (IDXGISwapChain* pSwapChain, UI ///////////////////////////////////////////////////////////////////////////// // Globals -inline UINT g_nWindowRect[2]; +extern BOOL g_bImGuiInitialized; +extern UINT g_nWindowRect[2]; ///////////////////////////////////////////////////////////////////////////// // Enums