From 4982cd136e6ad03041bc1574179abaffadd66dfa Mon Sep 17 00:00:00 2001 From: ocornut Date: Sat, 7 Nov 2015 23:10:01 +0000 Subject: [PATCH] Fixed Shutdown() not clearing FontAtlas if NewFrame() was never called. (#396, #303) --- imgui.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/imgui.cpp b/imgui.cpp index 81a6d079..c4bc682e 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -2040,6 +2040,12 @@ void ImGui::NewFrame() 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 @@ void ImGui::Shutdown() 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; }