Internals: added ImGuiContext::ContextName optionally used by debug log and to facilitate debugging.
diff --git a/imgui.cpp b/imgui.cpp
index 41d1cfa..443ce9e 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -15606,7 +15606,10 @@
{
ImGuiContext& g = *GImGui;
const int old_size = g.DebugLogBuf.size();
- g.DebugLogBuf.appendf("[%05d] ", g.FrameCount);
+ if (g.ContextName[0] != 0)
+ g.DebugLogBuf.appendf("[%s] [%05d] ", g.ContextName, g.FrameCount);
+ else
+ g.DebugLogBuf.appendf("[%05d] ", g.FrameCount);
g.DebugLogBuf.appendfv(fmt, args);
g.DebugLogIndex.append(g.DebugLogBuf.c_str(), old_size, g.DebugLogBuf.size());
if (g.DebugLogFlags & ImGuiDebugLogFlags_OutputToTTY)
diff --git a/imgui_internal.h b/imgui_internal.h
index 244cda1..f2940d2 100644
--- a/imgui_internal.h
+++ b/imgui_internal.h
@@ -1939,6 +1939,7 @@
bool GcCompactAll; // Request full GC
bool TestEngineHookItems; // Will call test engine hooks: ImGuiTestEngineHook_ItemAdd(), ImGuiTestEngineHook_ItemInfo(), ImGuiTestEngineHook_Log()
void* TestEngine; // Test engine user data
+ char ContextName[16]; // Storage for a context name (to facilitate debugging multi-context setups)
// Inputs
ImVector<ImGuiInputEvent> InputEventsQueue; // Input events which will be trickled/written into IO structure.
@@ -2266,6 +2267,7 @@
GcCompactAll = false;
TestEngineHookItems = false;
TestEngine = NULL;
+ memset(ContextName, 0, sizeof(ContextName));
InputEventsNextMouseSource = ImGuiMouseSource_Mouse;
InputEventsNextEventId = 1;