mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-09 04:30:49 -04:00
Fix stub log memory leaking if imgui rendering is disabled
This commit is contained in:
@@ -174,6 +174,7 @@ namespace dusk {
|
||||
|
||||
void ImGuiConsole::draw() {
|
||||
if (CheckMenuViewToggle(ImGuiKey_F1, m_isHidden)) {
|
||||
m_menuTools.afterDraw();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -187,6 +188,8 @@ namespace dusk {
|
||||
|
||||
ImGui::EndMainMenuBar();
|
||||
}
|
||||
|
||||
m_menuTools.afterDraw();
|
||||
}
|
||||
|
||||
bool ImGuiConsole::CheckMenuViewToggle(ImGuiKey key, bool& active) {
|
||||
|
||||
@@ -23,6 +23,7 @@ namespace dusk {
|
||||
|
||||
ImGuiMenuTools();
|
||||
void draw();
|
||||
void afterDraw();
|
||||
|
||||
void ShowDebugOverlay();
|
||||
void ShowCameraOverlay();
|
||||
|
||||
@@ -36,18 +36,20 @@ namespace dusk {
|
||||
|
||||
std::lock_guard lock(StubLogMutex);
|
||||
|
||||
if (StubLogBuffer.size() > 1024 * 1024) {
|
||||
DuskLog.warn("Stub log FULL. Dropping logs!");
|
||||
return;
|
||||
}
|
||||
|
||||
LineOffsets.push_back(StubLogBuffer.size());
|
||||
const auto levelName = LogLevelName(level);
|
||||
StubLogBuffer.appendf("[%s | %s] %s\n", levelName, module, message);
|
||||
}
|
||||
|
||||
static void ClearPastFrame();
|
||||
|
||||
void ImGuiMenuTools::ShowStubLog() {
|
||||
std::lock_guard lock(StubLogMutex);
|
||||
|
||||
if (!ImGuiConsole::CheckMenuViewToggle(ImGuiKey_F5, m_showStubLog)) {
|
||||
ClearPastFrame();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -78,7 +80,6 @@ namespace dusk {
|
||||
}
|
||||
|
||||
ImGui::End();
|
||||
ClearPastFrame();
|
||||
}
|
||||
|
||||
void ClearPastFrame() {
|
||||
@@ -88,4 +89,10 @@ namespace dusk {
|
||||
StubLogBuffer.clear();
|
||||
LineOffsets.clear();
|
||||
}
|
||||
|
||||
void ImGuiMenuTools::afterDraw() {
|
||||
std::lock_guard lock(StubLogMutex);
|
||||
|
||||
ClearPastFrame();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user