|
@@ -88,7 +88,7 @@ CODE
|
|
// [SECTION] PLATFORM DEPENDENT HELPERS
|
|
// [SECTION] PLATFORM DEPENDENT HELPERS
|
|
// [SECTION] METRICS/DEBUGGER WINDOW
|
|
// [SECTION] METRICS/DEBUGGER WINDOW
|
|
// [SECTION] DEBUG LOG WINDOW
|
|
// [SECTION] DEBUG LOG WINDOW
|
|
-// [SECTION] OTHER DEBUG TOOLS (ITEM PICKER, STACK TOOL)
|
|
|
|
|
|
+// [SECTION] OTHER DEBUG TOOLS (ITEM PICKER, ID STACK TOOL)
|
|
|
|
|
|
*/
|
|
*/
|
|
|
|
|
|
@@ -424,6 +424,7 @@ CODE
|
|
When you are not sure about an old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files.
|
|
When you are not sure about an old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files.
|
|
You can read releases logs https://github.com/ocornut/imgui/releases for more details.
|
|
You can read releases logs https://github.com/ocornut/imgui/releases for more details.
|
|
|
|
|
|
|
|
+ - 2023/09/26 (1.90.0) - debug tools: Renamed ShowStackToolWindow() ("Stack Tool") to ShowIdStackToolWindow() ("ID Stack Tool"), as earlier name was misleading. Kept inline redirection function. (#4631)
|
|
- 2023/09/15 (1.90.0) - ListBox, Combo: changed signature of "name getter" callback in old one-liner ListBox()/Combo() apis. kept inline redirection function (will obsolete).
|
|
- 2023/09/15 (1.90.0) - ListBox, Combo: changed signature of "name getter" callback in old one-liner ListBox()/Combo() apis. kept inline redirection function (will obsolete).
|
|
- old: bool Combo(const char* label, int* current_item, bool (*getter)(void* user_data, int idx, const char** out_text), ...)
|
|
- old: bool Combo(const char* label, int* current_item, bool (*getter)(void* user_data, int idx, const char** out_text), ...)
|
|
- new: bool Combo(const char* label, int* current_item, const char* (*getter)(void* user_data, int idx), ...);
|
|
- new: bool Combo(const char* label, int* current_item, const char* (*getter)(void* user_data, int idx), ...);
|
|
@@ -7798,7 +7799,7 @@ void ImGui::PushOverrideID(ImGuiID id)
|
|
}
|
|
}
|
|
|
|
|
|
// Helper to avoid a common series of PushOverrideID -> GetID() -> PopID() call
|
|
// Helper to avoid a common series of PushOverrideID -> GetID() -> PopID() call
|
|
-// (note that when using this pattern, TestEngine's "Stack Tool" will tend to not display the intermediate stack level.
|
|
|
|
|
|
+// (note that when using this pattern, ID Stack Tool will tend to not display the intermediate stack level.
|
|
// for that to work we would need to do PushOverrideID() -> ItemAdd() -> PopID() which would alter widget code a little more)
|
|
// for that to work we would need to do PushOverrideID() -> ItemAdd() -> PopID() which would alter widget code a little more)
|
|
ImGuiID ImGui::GetIDWithSeed(const char* str, const char* str_end, ImGuiID seed)
|
|
ImGuiID ImGui::GetIDWithSeed(const char* str, const char* str_end, ImGuiID seed)
|
|
{
|
|
{
|
|
@@ -13702,8 +13703,8 @@ void ImGui::ShowMetricsWindow(bool* p_open)
|
|
ImGuiMetricsConfig* cfg = &g.DebugMetricsConfig;
|
|
ImGuiMetricsConfig* cfg = &g.DebugMetricsConfig;
|
|
if (cfg->ShowDebugLog)
|
|
if (cfg->ShowDebugLog)
|
|
ShowDebugLogWindow(&cfg->ShowDebugLog);
|
|
ShowDebugLogWindow(&cfg->ShowDebugLog);
|
|
- if (cfg->ShowStackTool)
|
|
|
|
- ShowStackToolWindow(&cfg->ShowStackTool);
|
|
|
|
|
|
+ if (cfg->ShowIdStackTool)
|
|
|
|
+ ShowIdStackToolWindow(&cfg->ShowIdStackTool);
|
|
|
|
|
|
if (!Begin("Dear ImGui Metrics/Debugger", p_open) || GetCurrentWindow()->BeginCount > 1)
|
|
if (!Begin("Dear ImGui Metrics/Debugger", p_open) || GetCurrentWindow()->BeginCount > 1)
|
|
{
|
|
{
|
|
@@ -13789,15 +13790,13 @@ void ImGui::ShowMetricsWindow(bool* p_open)
|
|
SameLine();
|
|
SameLine();
|
|
MetricsHelpMarker("Will call the IM_DEBUG_BREAK() macro to break in debugger.\nWarning: If you don't have a debugger attached, this will probably crash.");
|
|
MetricsHelpMarker("Will call the IM_DEBUG_BREAK() macro to break in debugger.\nWarning: If you don't have a debugger attached, this will probably crash.");
|
|
|
|
|
|
- // Stack Tool is your best friend!
|
|
|
|
Checkbox("Show Debug Log", &cfg->ShowDebugLog);
|
|
Checkbox("Show Debug Log", &cfg->ShowDebugLog);
|
|
SameLine();
|
|
SameLine();
|
|
MetricsHelpMarker("You can also call ImGui::ShowDebugLogWindow() from your code.");
|
|
MetricsHelpMarker("You can also call ImGui::ShowDebugLogWindow() from your code.");
|
|
|
|
|
|
- // Stack Tool is your best friend!
|
|
|
|
- Checkbox("Show Stack Tool", &cfg->ShowStackTool);
|
|
|
|
|
|
+ Checkbox("Show ID Stack Tool", &cfg->ShowIdStackTool);
|
|
SameLine();
|
|
SameLine();
|
|
- MetricsHelpMarker("You can also call ImGui::ShowStackToolWindow() from your code.");
|
|
|
|
|
|
+ MetricsHelpMarker("You can also call ImGui::ShowIdStackToolWindow() from your code.");
|
|
|
|
|
|
Checkbox("Show windows begin order", &cfg->ShowWindowsBeginOrder);
|
|
Checkbox("Show windows begin order", &cfg->ShowWindowsBeginOrder);
|
|
Checkbox("Show windows rectangles", &cfg->ShowWindowsRects);
|
|
Checkbox("Show windows rectangles", &cfg->ShowWindowsRects);
|
|
@@ -14720,7 +14719,7 @@ void ImGui::ShowDebugLogWindow(bool* p_open)
|
|
}
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------
|
|
-// [SECTION] OTHER DEBUG TOOLS (ITEM PICKER, STACK TOOL)
|
|
|
|
|
|
+// [SECTION] OTHER DEBUG TOOLS (ITEM PICKER, ID STACK TOOL)
|
|
//-----------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
// Draw a small cross at current CursorPos in current window's DrawList
|
|
// Draw a small cross at current CursorPos in current window's DrawList
|
|
@@ -14821,13 +14820,13 @@ void ImGui::UpdateDebugToolItemPicker()
|
|
EndTooltip();
|
|
EndTooltip();
|
|
}
|
|
}
|
|
|
|
|
|
-// [DEBUG] Stack Tool: update queries. Called by NewFrame()
|
|
|
|
|
|
+// [DEBUG] ID Stack Tool: update queries. Called by NewFrame()
|
|
void ImGui::UpdateDebugToolStackQueries()
|
|
void ImGui::UpdateDebugToolStackQueries()
|
|
{
|
|
{
|
|
ImGuiContext& g = *GImGui;
|
|
ImGuiContext& g = *GImGui;
|
|
- ImGuiStackTool* tool = &g.DebugStackTool;
|
|
|
|
|
|
+ ImGuiIdStackTool* tool = &g.DebugIdStackTool;
|
|
|
|
|
|
- // Clear hook when stack tool is not visible
|
|
|
|
|
|
+ // Clear hook when id stack tool is not visible
|
|
g.DebugHookIdInfo = 0;
|
|
g.DebugHookIdInfo = 0;
|
|
if (g.FrameCount != tool->LastActiveFrame + 1)
|
|
if (g.FrameCount != tool->LastActiveFrame + 1)
|
|
return;
|
|
return;
|
|
@@ -14861,12 +14860,12 @@ void ImGui::UpdateDebugToolStackQueries()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-// [DEBUG] Stack tool: hooks called by GetID() family functions
|
|
|
|
|
|
+// [DEBUG] ID Stack tool: hooks called by GetID() family functions
|
|
void ImGui::DebugHookIdInfo(ImGuiID id, ImGuiDataType data_type, const void* data_id, const void* data_id_end)
|
|
void ImGui::DebugHookIdInfo(ImGuiID id, ImGuiDataType data_type, const void* data_id, const void* data_id_end)
|
|
{
|
|
{
|
|
ImGuiContext& g = *GImGui;
|
|
ImGuiContext& g = *GImGui;
|
|
ImGuiWindow* window = g.CurrentWindow;
|
|
ImGuiWindow* window = g.CurrentWindow;
|
|
- ImGuiStackTool* tool = &g.DebugStackTool;
|
|
|
|
|
|
+ ImGuiIdStackTool* tool = &g.DebugIdStackTool;
|
|
|
|
|
|
// Step 0: stack query
|
|
// Step 0: stack query
|
|
// This assumes that the ID was computed with the current ID stack, which tends to be the case for our widget.
|
|
// This assumes that the ID was computed with the current ID stack, which tends to be the case for our widget.
|
|
@@ -14909,7 +14908,7 @@ void ImGui::DebugHookIdInfo(ImGuiID id, ImGuiDataType data_type, const void* dat
|
|
info->DataType = data_type;
|
|
info->DataType = data_type;
|
|
}
|
|
}
|
|
|
|
|
|
-static int StackToolFormatLevelInfo(ImGuiStackTool* tool, int n, bool format_for_ui, char* buf, size_t buf_size)
|
|
|
|
|
|
+static int StackToolFormatLevelInfo(ImGuiIdStackTool* tool, int n, bool format_for_ui, char* buf, size_t buf_size)
|
|
{
|
|
{
|
|
ImGuiStackLevelInfo* info = &tool->Results[n];
|
|
ImGuiStackLevelInfo* info = &tool->Results[n];
|
|
ImGuiWindow* window = (info->Desc[0] == 0 && n == 0) ? ImGui::FindWindowByID(info->ID) : NULL;
|
|
ImGuiWindow* window = (info->Desc[0] == 0 && n == 0) ? ImGui::FindWindowByID(info->ID) : NULL;
|
|
@@ -14926,20 +14925,20 @@ static int StackToolFormatLevelInfo(ImGuiStackTool* tool, int n, bool format_for
|
|
return ImFormatString(buf, buf_size, "???");
|
|
return ImFormatString(buf, buf_size, "???");
|
|
}
|
|
}
|
|
|
|
|
|
-// Stack Tool: Display UI
|
|
|
|
-void ImGui::ShowStackToolWindow(bool* p_open)
|
|
|
|
|
|
+// ID Stack Tool: Display UI
|
|
|
|
+void ImGui::ShowIdStackToolWindow(bool* p_open)
|
|
{
|
|
{
|
|
ImGuiContext& g = *GImGui;
|
|
ImGuiContext& g = *GImGui;
|
|
if (!(g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasSize))
|
|
if (!(g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasSize))
|
|
SetNextWindowSize(ImVec2(0.0f, GetFontSize() * 8.0f), ImGuiCond_FirstUseEver);
|
|
SetNextWindowSize(ImVec2(0.0f, GetFontSize() * 8.0f), ImGuiCond_FirstUseEver);
|
|
- if (!Begin("Dear ImGui Stack Tool", p_open) || GetCurrentWindow()->BeginCount > 1)
|
|
|
|
|
|
+ if (!Begin("Dear ImGui ID Stack Tool", p_open) || GetCurrentWindow()->BeginCount > 1)
|
|
{
|
|
{
|
|
End();
|
|
End();
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
// Display hovered/active status
|
|
// Display hovered/active status
|
|
- ImGuiStackTool* tool = &g.DebugStackTool;
|
|
|
|
|
|
+ ImGuiIdStackTool* tool = &g.DebugIdStackTool;
|
|
const ImGuiID hovered_id = g.HoveredIdPreviousFrame;
|
|
const ImGuiID hovered_id = g.HoveredIdPreviousFrame;
|
|
const ImGuiID active_id = g.ActiveId;
|
|
const ImGuiID active_id = g.ActiveId;
|
|
#ifdef IMGUI_ENABLE_TEST_ENGINE
|
|
#ifdef IMGUI_ENABLE_TEST_ENGINE
|
|
@@ -15021,7 +15020,7 @@ void ImGui::DebugNodeViewport(ImGuiViewportP*) {}
|
|
void ImGui::DebugLog(const char*, ...) {}
|
|
void ImGui::DebugLog(const char*, ...) {}
|
|
void ImGui::DebugLogV(const char*, va_list) {}
|
|
void ImGui::DebugLogV(const char*, va_list) {}
|
|
void ImGui::ShowDebugLogWindow(bool*) {}
|
|
void ImGui::ShowDebugLogWindow(bool*) {}
|
|
-void ImGui::ShowStackToolWindow(bool*) {}
|
|
|
|
|
|
+void ImGui::ShowIdStackToolWindow(bool*) {}
|
|
void ImGui::DebugHookIdInfo(ImGuiID, ImGuiDataType, const void*, const void*) {}
|
|
void ImGui::DebugHookIdInfo(ImGuiID, ImGuiDataType, const void*, const void*) {}
|
|
void ImGui::UpdateDebugToolItemPicker() {}
|
|
void ImGui::UpdateDebugToolItemPicker() {}
|
|
void ImGui::UpdateDebugToolStackQueries() {}
|
|
void ImGui::UpdateDebugToolStackQueries() {}
|