From 1f8cd45626da1e73efa94da990549daf4b7b4fc1 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Thu, 29 Feb 2024 22:31:43 +0100 Subject: [PATCH] ImGui: make config singleton static Avoid indirection, also deduplicate common style var assignments. --- r5dev/engine/sys_dll.cpp | 2 +- r5dev/engine/sys_mainwind.cpp | 8 +++--- r5dev/gameui/IConsole.cpp | 8 +++--- r5dev/gameui/imgui_surface.cpp | 2 +- r5dev/thirdparty/imgui/misc/imgui_utility.cpp | 25 +++++++------------ r5dev/thirdparty/imgui/misc/imgui_utility.h | 2 +- 6 files changed, 20 insertions(+), 27 deletions(-) diff --git a/r5dev/engine/sys_dll.cpp b/r5dev/engine/sys_dll.cpp index b0fb3dfe..5a3d21a2 100644 --- a/r5dev/engine/sys_dll.cpp +++ b/r5dev/engine/sys_dll.cpp @@ -106,7 +106,7 @@ bool CModAppSystemGroup::StaticCreate(CModAppSystemGroup* pModAppSystemGroup) g_pClientEntityList = (CClientEntityList*)g_FactorySystem.GetFactory(VCLIENTENTITYLIST_INTERFACE_VERSION); g_pEngineTraceClient = (CEngineTraceClient*)g_FactorySystem.GetFactory(INTERFACEVERSION_ENGINETRACE_CLIENT); - g_pImGuiConfig->Load(); // Load ImGui configs. + g_ImGuiConfig.Load(); // Load ImGui configs. DirectX_Init(); #endif // !DEDICATED diff --git a/r5dev/engine/sys_mainwind.cpp b/r5dev/engine/sys_mainwind.cpp index 9e3b2dd1..7c40483d 100644 --- a/r5dev/engine/sys_mainwind.cpp +++ b/r5dev/engine/sys_mainwind.cpp @@ -37,15 +37,15 @@ int CGame::WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) if (uMsg == WM_KEYDOWN || uMsg == WM_SYSKEYDOWN) { - if (wParam == g_pImGuiConfig->m_ConsoleConfig.m_nBind0 || - wParam == g_pImGuiConfig->m_ConsoleConfig.m_nBind1) + if (wParam == g_ImGuiConfig.m_ConsoleConfig.m_nBind0 || + wParam == g_ImGuiConfig.m_ConsoleConfig.m_nBind1) { g_Console.ToggleActive(); ResetInput(); // Disable input to game when console is drawn. } - if (wParam == g_pImGuiConfig->m_BrowserConfig.m_nBind0 || - wParam == g_pImGuiConfig->m_BrowserConfig.m_nBind1) + if (wParam == g_ImGuiConfig.m_BrowserConfig.m_nBind0 || + wParam == g_ImGuiConfig.m_BrowserConfig.m_nBind1) { g_Browser.ToggleActive(); ResetInput(); // Disable input to game when browser is drawn. diff --git a/r5dev/gameui/IConsole.cpp b/r5dev/gameui/IConsole.cpp index d3747999..3d49bd26 100644 --- a/r5dev/gameui/IConsole.cpp +++ b/r5dev/gameui/IConsole.cpp @@ -368,17 +368,17 @@ void CConsole::OptionsPanel(void) ImGui::Text("Console hotkey:"); ImGui::SameLine(); - if (ImGui::Hotkey("##ToggleConsole", &g_pImGuiConfig->m_ConsoleConfig.m_nBind0, ImVec2(80, 80))) + if (ImGui::Hotkey("##ToggleConsole", &g_ImGuiConfig.m_ConsoleConfig.m_nBind0, ImVec2(80, 80))) { - g_pImGuiConfig->Save(); + g_ImGuiConfig.Save(); } ImGui::Text("Browser hotkey:"); ImGui::SameLine(); - if (ImGui::Hotkey("##ToggleBrowser", &g_pImGuiConfig->m_BrowserConfig.m_nBind0, ImVec2(80, 80))) + if (ImGui::Hotkey("##ToggleBrowser", &g_ImGuiConfig.m_BrowserConfig.m_nBind0, ImVec2(80, 80))) { - g_pImGuiConfig->Save(); + g_ImGuiConfig.Save(); } ImGui::EndPopup(); diff --git a/r5dev/gameui/imgui_surface.cpp b/r5dev/gameui/imgui_surface.cpp index 13621d51..da0778c8 100644 --- a/r5dev/gameui/imgui_surface.cpp +++ b/r5dev/gameui/imgui_surface.cpp @@ -36,7 +36,7 @@ void CImguiSurface::Animate() void CImguiSurface::SetStyleVar(const float width, const float height, const float x, const float y) { - m_surfaceStyle = g_pImGuiConfig->InitStyle(); + m_surfaceStyle = g_ImGuiConfig.InitStyle(); ImGui::SetNextWindowSize(ImVec2(width, height), ImGuiCond_FirstUseEver); ImGui::SetWindowPos(ImVec2(x, y), ImGuiCond_FirstUseEver); diff --git a/r5dev/thirdparty/imgui/misc/imgui_utility.cpp b/r5dev/thirdparty/imgui/misc/imgui_utility.cpp index 977a52ca..7881ec27 100644 --- a/r5dev/thirdparty/imgui/misc/imgui_utility.cpp +++ b/r5dev/thirdparty/imgui/misc/imgui_utility.cpp @@ -115,14 +115,9 @@ ImGuiStyle_t ImGuiConfig::InitStyle() const style.WindowBorderSize = 0.0f; style.FrameBorderSize = 1.0f; style.ChildBorderSize = 1.0f; - style.PopupBorderSize = 1.0f; - style.TabBorderSize = 1.0f; - style.WindowRounding = 4.0f; - style.FrameRounding = 1.0f; style.ChildRounding = 1.0f; style.PopupRounding = 3.0f; - style.TabRounding = 1.0f; style.ScrollbarRounding = 1.0f; result = ImGuiStyle_t::LEGACY; @@ -167,14 +162,9 @@ ImGuiStyle_t ImGuiConfig::InitStyle() const style.WindowBorderSize = 1.0f; style.FrameBorderSize = 0.0f; style.ChildBorderSize = 0.0f; - style.PopupBorderSize = 1.0f; - style.TabBorderSize = 1.0f; - style.WindowRounding = 4.0f; - style.FrameRounding = 1.0f; style.ChildRounding = 1.0f; style.PopupRounding = 3.0f; - style.TabRounding = 1.0f; style.ScrollbarRounding = 3.0f; result = ImGuiStyle_t::MODERN; @@ -223,20 +213,23 @@ ImGuiStyle_t ImGuiConfig::InitStyle() const style.WindowBorderSize = 1.0f; style.FrameBorderSize = 1.0f; style.ChildBorderSize = 0.0f; - style.PopupBorderSize = 1.0f; - style.TabBorderSize = 1.0f; - style.WindowRounding = 4.0f; - style.FrameRounding = 1.0f; style.ChildRounding = 2.0f; style.PopupRounding = 4.0f; - style.TabRounding = 1.0f; style.GrabRounding = 1.0f; style.ScrollbarRounding = 1.0f; result = ImGuiStyle_t::DEFAULT; } + style.PopupBorderSize = 1.0f; + style.TabBorderSize = 1.0f; + style.TabBarBorderSize = 1.0f; + + style.WindowRounding = 4.0f; + style.FrameRounding = 1.0f; + style.TabRounding = 1.0f; + style.ItemSpacing = ImVec2(5, 4); style.FramePadding = ImVec2(4, 4); style.WindowPadding = ImVec2(5, 5); @@ -244,4 +237,4 @@ ImGuiStyle_t ImGuiConfig::InitStyle() const return result; } -ImGuiConfig* g_pImGuiConfig = new ImGuiConfig(); +ImGuiConfig g_ImGuiConfig; diff --git a/r5dev/thirdparty/imgui/misc/imgui_utility.h b/r5dev/thirdparty/imgui/misc/imgui_utility.h index 94cdca17..f1b418d1 100644 --- a/r5dev/thirdparty/imgui/misc/imgui_utility.h +++ b/r5dev/thirdparty/imgui/misc/imgui_utility.h @@ -30,4 +30,4 @@ public: ImGuiStyle_t InitStyle() const; }; -extern ImGuiConfig* g_pImGuiConfig; +extern ImGuiConfig g_ImGuiConfig;