mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 01:17:00 +00:00
Shutdown() freeing a few extra vectors so they don't have to freed by destruction #169
This commit is contained in:
parent
c0eab2a164
commit
92a22ab35f
28
imgui.cpp
28
imgui.cpp
@ -1975,8 +1975,6 @@ void ImGui::Shutdown()
|
|||||||
}
|
}
|
||||||
g.Windows.clear();
|
g.Windows.clear();
|
||||||
g.CurrentWindowStack.clear();
|
g.CurrentWindowStack.clear();
|
||||||
g.RenderDrawLists.clear();
|
|
||||||
g.CursorDrawList.Clear();
|
|
||||||
g.FocusedWindow = NULL;
|
g.FocusedWindow = NULL;
|
||||||
g.HoveredWindow = NULL;
|
g.HoveredWindow = NULL;
|
||||||
g.HoveredRootWindow = NULL;
|
g.HoveredRootWindow = NULL;
|
||||||
@ -1989,26 +1987,29 @@ void ImGui::Shutdown()
|
|||||||
g.ColorModifiers.clear();
|
g.ColorModifiers.clear();
|
||||||
g.StyleModifiers.clear();
|
g.StyleModifiers.clear();
|
||||||
g.FontStack.clear();
|
g.FontStack.clear();
|
||||||
|
g.RenderDrawLists.clear();
|
||||||
|
g.RenderSortedWindows.clear();
|
||||||
|
g.CursorDrawList.ClearFreeMemory();
|
||||||
g.ColorEditModeStorage.Clear();
|
g.ColorEditModeStorage.Clear();
|
||||||
if (g.LogFile && g.LogFile != stdout)
|
|
||||||
{
|
|
||||||
fclose(g.LogFile);
|
|
||||||
g.LogFile = NULL;
|
|
||||||
}
|
|
||||||
g.IO.Fonts->Clear();
|
|
||||||
|
|
||||||
if (g.PrivateClipboard)
|
if (g.PrivateClipboard)
|
||||||
{
|
{
|
||||||
ImGui::MemFree(g.PrivateClipboard);
|
ImGui::MemFree(g.PrivateClipboard);
|
||||||
g.PrivateClipboard = NULL;
|
g.PrivateClipboard = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (g.LogFile && g.LogFile != stdout)
|
||||||
|
{
|
||||||
|
fclose(g.LogFile);
|
||||||
|
g.LogFile = NULL;
|
||||||
|
}
|
||||||
if (g.LogClipboard)
|
if (g.LogClipboard)
|
||||||
{
|
{
|
||||||
g.LogClipboard->~ImGuiTextBuffer();
|
g.LogClipboard->~ImGuiTextBuffer();
|
||||||
ImGui::MemFree(g.LogClipboard);
|
ImGui::MemFree(g.LogClipboard);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g.IO.Fonts->Clear();
|
||||||
|
|
||||||
g.Initialized = false;
|
g.Initialized = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7245,6 +7246,15 @@ void ImDrawList::Clear()
|
|||||||
texture_id_stack.resize(0);
|
texture_id_stack.resize(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ImDrawList::ClearFreeMemory()
|
||||||
|
{
|
||||||
|
commands.clear();
|
||||||
|
vtx_buffer.clear();
|
||||||
|
vtx_write = NULL;
|
||||||
|
clip_rect_stack.clear();
|
||||||
|
texture_id_stack.clear();
|
||||||
|
}
|
||||||
|
|
||||||
void ImDrawList::AddDrawCmd()
|
void ImDrawList::AddDrawCmd()
|
||||||
{
|
{
|
||||||
ImDrawCmd draw_cmd;
|
ImDrawCmd draw_cmd;
|
||||||
|
1
imgui.h
1
imgui.h
@ -865,6 +865,7 @@ struct ImDrawList
|
|||||||
|
|
||||||
ImDrawList() { Clear(); }
|
ImDrawList() { Clear(); }
|
||||||
IMGUI_API void Clear();
|
IMGUI_API void Clear();
|
||||||
|
IMGUI_API void ClearFreeMemory();
|
||||||
IMGUI_API void PushClipRect(const ImVec4& clip_rect); // Scissoring. The values are x1, y1, x2, y2.
|
IMGUI_API void PushClipRect(const ImVec4& clip_rect); // Scissoring. The values are x1, y1, x2, y2.
|
||||||
IMGUI_API void PushClipRectFullScreen();
|
IMGUI_API void PushClipRectFullScreen();
|
||||||
IMGUI_API void PopClipRect();
|
IMGUI_API void PopClipRect();
|
||||||
|
Loading…
Reference in New Issue
Block a user