mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-22 11:57:00 +00:00
Debug Log: added 'Clipper' events logging.
This commit is contained in:
parent
4eb9066997
commit
07b9999de9
@ -79,7 +79,7 @@ Other Changes:
|
|||||||
- Platform IME: [Windows] Removed call to ImmAssociateContextEx() leading to freeze on some setups.
|
- Platform IME: [Windows] Removed call to ImmAssociateContextEx() leading to freeze on some setups.
|
||||||
(#2589, #5535, #5264, #4972)
|
(#2589, #5535, #5264, #4972)
|
||||||
- Misc: io.Framerate moving average now converge in 60 frames instead of 120. (#5236, #4138)
|
- Misc: io.Framerate moving average now converge in 60 frames instead of 120. (#5236, #4138)
|
||||||
- Debug Tools: Debug Log: Added IO events logging.
|
- Debug Tools: Debug Log: Added 'IO' and 'Clipper' events logging.
|
||||||
- Debug Tools: Item Picker: Mouse button can be changed by holding Ctrl+Shift, making it easier
|
- Debug Tools: Item Picker: Mouse button can be changed by holding Ctrl+Shift, making it easier
|
||||||
to use the Item Picker in e.g. menus. (#2673)
|
to use the Item Picker in e.g. menus. (#2673)
|
||||||
- Backends: Metal: Use __bridge for ARC based systems. (#5403) [@stack]
|
- Backends: Metal: Use __bridge for ARC based systems. (#5403) [@stack]
|
||||||
|
16
imgui.cpp
16
imgui.cpp
@ -2596,6 +2596,7 @@ void ImGuiListClipper::Begin(int items_count, float items_height)
|
|||||||
{
|
{
|
||||||
ImGuiContext& g = *GImGui;
|
ImGuiContext& g = *GImGui;
|
||||||
ImGuiWindow* window = g.CurrentWindow;
|
ImGuiWindow* window = g.CurrentWindow;
|
||||||
|
IMGUI_DEBUG_LOG_CLIPPER("Clipper: Begin(%d,%.2f) in '%s'\n", items_count, items_height, window->Name);
|
||||||
|
|
||||||
if (ImGuiTable* table = g.CurrentTable)
|
if (ImGuiTable* table = g.CurrentTable)
|
||||||
if (table->IsInsideRow)
|
if (table->IsInsideRow)
|
||||||
@ -2622,6 +2623,7 @@ void ImGuiListClipper::End()
|
|||||||
if (ImGuiListClipperData* data = (ImGuiListClipperData*)TempData)
|
if (ImGuiListClipperData* data = (ImGuiListClipperData*)TempData)
|
||||||
{
|
{
|
||||||
// In theory here we should assert that we are already at the right position, but it seems saner to just seek at the end and not assert/crash the user.
|
// In theory here we should assert that we are already at the right position, but it seems saner to just seek at the end and not assert/crash the user.
|
||||||
|
IMGUI_DEBUG_LOG_CLIPPER("Clipper: End() in '%s'\n", g.CurrentWindow->Name);
|
||||||
if (ItemsCount >= 0 && ItemsCount < INT_MAX && DisplayStart >= 0)
|
if (ItemsCount >= 0 && ItemsCount < INT_MAX && DisplayStart >= 0)
|
||||||
ImGuiListClipper_SeekCursorForItem(this, ItemsCount);
|
ImGuiListClipper_SeekCursorForItem(this, ItemsCount);
|
||||||
|
|
||||||
@ -2775,8 +2777,19 @@ static bool ImGuiListClipper_StepInternal(ImGuiListClipper* clipper)
|
|||||||
|
|
||||||
bool ImGuiListClipper::Step()
|
bool ImGuiListClipper::Step()
|
||||||
{
|
{
|
||||||
|
ImGuiContext& g = *GImGui;
|
||||||
|
ImGuiWindow* window = g.CurrentWindow;
|
||||||
|
bool need_items_height = (ItemsHeight <= 0.0f);
|
||||||
bool ret = ImGuiListClipper_StepInternal(this);
|
bool ret = ImGuiListClipper_StepInternal(this);
|
||||||
if (ret == false)
|
if (g.CurrentTable && g.CurrentTable->IsUnfrozenRows == false)
|
||||||
|
IMGUI_DEBUG_LOG_CLIPPER("Clipper: Step(): inside frozen table row.\n");
|
||||||
|
if (need_items_height && ItemsHeight > 0.0f)
|
||||||
|
IMGUI_DEBUG_LOG_CLIPPER("Clipper: Step(): computed ItemsHeight: %.2f.\n", ItemsHeight);
|
||||||
|
if (ret)
|
||||||
|
IMGUI_DEBUG_LOG_CLIPPER("Clipper: Step(): display %d to %d.\n", DisplayStart, DisplayEnd);
|
||||||
|
else
|
||||||
|
IMGUI_DEBUG_LOG_CLIPPER("Clipper: Step(): End.\n");
|
||||||
|
if (!ret)
|
||||||
End();
|
End();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -13278,6 +13291,7 @@ void ImGui::ShowDebugLogWindow(bool* p_open)
|
|||||||
SameLine(); CheckboxFlags("Focus", &g.DebugLogFlags, ImGuiDebugLogFlags_EventFocus);
|
SameLine(); CheckboxFlags("Focus", &g.DebugLogFlags, ImGuiDebugLogFlags_EventFocus);
|
||||||
SameLine(); CheckboxFlags("Popup", &g.DebugLogFlags, ImGuiDebugLogFlags_EventPopup);
|
SameLine(); CheckboxFlags("Popup", &g.DebugLogFlags, ImGuiDebugLogFlags_EventPopup);
|
||||||
SameLine(); CheckboxFlags("Nav", &g.DebugLogFlags, ImGuiDebugLogFlags_EventNav);
|
SameLine(); CheckboxFlags("Nav", &g.DebugLogFlags, ImGuiDebugLogFlags_EventNav);
|
||||||
|
SameLine(); CheckboxFlags("Clipper", &g.DebugLogFlags, ImGuiDebugLogFlags_EventClipper);
|
||||||
SameLine(); CheckboxFlags("IO", &g.DebugLogFlags, ImGuiDebugLogFlags_EventIO);
|
SameLine(); CheckboxFlags("IO", &g.DebugLogFlags, ImGuiDebugLogFlags_EventIO);
|
||||||
|
|
||||||
if (SmallButton("Clear"))
|
if (SmallButton("Clear"))
|
||||||
|
@ -210,6 +210,7 @@ namespace ImStb
|
|||||||
#define IMGUI_DEBUG_LOG_FOCUS(...) do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventFocus) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)
|
#define IMGUI_DEBUG_LOG_FOCUS(...) do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventFocus) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)
|
||||||
#define IMGUI_DEBUG_LOG_POPUP(...) do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventPopup) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)
|
#define IMGUI_DEBUG_LOG_POPUP(...) do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventPopup) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)
|
||||||
#define IMGUI_DEBUG_LOG_NAV(...) do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventNav) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)
|
#define IMGUI_DEBUG_LOG_NAV(...) do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventNav) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)
|
||||||
|
#define IMGUI_DEBUG_LOG_CLIPPER(...) do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventClipper) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)
|
||||||
#define IMGUI_DEBUG_LOG_IO(...) do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventIO) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)
|
#define IMGUI_DEBUG_LOG_IO(...) do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventIO) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)
|
||||||
|
|
||||||
// Static Asserts
|
// Static Asserts
|
||||||
@ -1514,8 +1515,9 @@ enum ImGuiDebugLogFlags_
|
|||||||
ImGuiDebugLogFlags_EventFocus = 1 << 1,
|
ImGuiDebugLogFlags_EventFocus = 1 << 1,
|
||||||
ImGuiDebugLogFlags_EventPopup = 1 << 2,
|
ImGuiDebugLogFlags_EventPopup = 1 << 2,
|
||||||
ImGuiDebugLogFlags_EventNav = 1 << 3,
|
ImGuiDebugLogFlags_EventNav = 1 << 3,
|
||||||
ImGuiDebugLogFlags_EventIO = 1 << 4,
|
ImGuiDebugLogFlags_EventClipper = 1 << 4,
|
||||||
ImGuiDebugLogFlags_EventMask_ = ImGuiDebugLogFlags_EventActiveId | ImGuiDebugLogFlags_EventFocus | ImGuiDebugLogFlags_EventPopup | ImGuiDebugLogFlags_EventNav | ImGuiDebugLogFlags_EventIO,
|
ImGuiDebugLogFlags_EventIO = 1 << 5,
|
||||||
|
ImGuiDebugLogFlags_EventMask_ = ImGuiDebugLogFlags_EventActiveId | ImGuiDebugLogFlags_EventFocus | ImGuiDebugLogFlags_EventPopup | ImGuiDebugLogFlags_EventNav | ImGuiDebugLogFlags_EventClipper | ImGuiDebugLogFlags_EventIO,
|
||||||
ImGuiDebugLogFlags_OutputToTTY = 1 << 10, // Also send output to TTY
|
ImGuiDebugLogFlags_OutputToTTY = 1 << 10, // Also send output to TTY
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user