diff --git a/imgui.cpp b/imgui.cpp index 81a6d07..c4bc682 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -2040,6 +2040,12 @@ void ImGui::Shutdown() { ImGuiState& g = *GImGui; + + // The fonts atlas can be used prior to calling NewFrame(), so we clear it even if g.Initialized is FALSE (which would happen if we never called NewFrame) + if (g.IO.Fonts) // Testing for NULL to allow user to NULLify in case of running Shutdown() on multiple contexts. Bit hacky. + g.IO.Fonts->Clear(); + + // Cleanup of other data are conditional on actually having used ImGui. if (!g.Initialized) return; @@ -2088,9 +2094,6 @@ ImGui::MemFree(g.LogClipboard); } - if (g.IO.Fonts) // Testing for NULL to allow user to NULLify in case of running Shutdown() on multiple contexts. Bit hacky. - g.IO.Fonts->Clear(); - g.Initialized = false; }