diff --git a/src/gameui/imgui_system.cpp b/src/gameui/imgui_system.cpp index 31225d5c..4d9343b0 100644 --- a/src/gameui/imgui_system.cpp +++ b/src/gameui/imgui_system.cpp @@ -149,8 +149,13 @@ void CImguiSystem::RenderFrame() if (m_systemInitState < ImguiSystemInitStage_e::IM_FRAME_SWAPPED) return; - AUTO_LOCK(m_snapshotBufferMutex); - ImGui_ImplDX11_RenderDrawData(&m_snapshotData.DrawData); + { + AUTO_LOCK(m_snapshotBufferMutex); + ImGui_ImplDX11_RenderDrawData(&m_snapshotData.DrawData); + } + + if (m_systemInitState == ImguiSystemInitStage_e::IM_FRAME_SAMPLED) + m_systemInitState = ImguiSystemInitStage_e::IM_FRAME_RENDERED; } //----------------------------------------------------------------------------- diff --git a/src/gameui/imgui_system.h b/src/gameui/imgui_system.h index 4c6e701e..aa8121fd 100644 --- a/src/gameui/imgui_system.h +++ b/src/gameui/imgui_system.h @@ -44,7 +44,10 @@ private: // State gets set to this then buffers have been swapped for the first // time. - IM_FRAME_SWAPPED + IM_FRAME_SWAPPED, + + // Rendered for the first time. + IM_FRAME_RENDERED }; ImguiSystemInitStage_e m_systemInitState;