Fixed Shutdown() not clearing FontAtlas if NewFrame() was never called. (#396, #303)

This commit is contained in:
ocornut 2015-11-07 23:10:01 +00:00
parent b168c72dd1
commit 4982cd136e

View File

@ -2040,6 +2040,12 @@ void ImGui::NewFrame()
void ImGui::Shutdown() void ImGui::Shutdown()
{ {
ImGuiState& g = *GImGui; 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) if (!g.Initialized)
return; return;
@ -2088,9 +2094,6 @@ void ImGui::Shutdown()
ImGui::MemFree(g.LogClipboard); 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; g.Initialized = false;
} }