From 5da0e0dab63d31f8ce704610b5efcbb93c30eaee Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Mon, 23 Oct 2023 16:50:05 -0700 Subject: [PATCH] inspector: show kitty graphics metadata --- src/inspector/Inspector.zig | 83 +++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/src/inspector/Inspector.zig b/src/inspector/Inspector.zig index 0064c9958..18f0bb865 100644 --- a/src/inspector/Inspector.zig +++ b/src/inspector/Inspector.zig @@ -424,6 +424,89 @@ fn renderScreenWindow(self: *Inspector) void { } // keyboard mode info } // table } // keyboard + + if (cimgui.c.igCollapsingHeader_TreeNodeFlags( + "Kitty Graphics", + cimgui.c.ImGuiTreeNodeFlags_DefaultOpen, + )) kitty_gfx: { + if (!screen.kitty_images.enabled()) { + cimgui.c.igTextDisabled("(Kitty graphics are disabled)"); + break :kitty_gfx; + } + + { + _ = cimgui.c.igBeginTable( + "##kitty_graphics", + 2, + cimgui.c.ImGuiTableFlags_None, + .{ .x = 0, .y = 0 }, + 0, + ); + defer cimgui.c.igEndTable(); + + const kitty_images = &screen.kitty_images; + + { + cimgui.c.igTableNextRow(cimgui.c.ImGuiTableRowFlags_None, 0); + { + _ = cimgui.c.igTableSetColumnIndex(0); + cimgui.c.igText("Memory Usage"); + } + { + _ = cimgui.c.igTableSetColumnIndex(1); + cimgui.c.igText("%d bytes", kitty_images.total_bytes); + } + } + + { + cimgui.c.igTableNextRow(cimgui.c.ImGuiTableRowFlags_None, 0); + { + _ = cimgui.c.igTableSetColumnIndex(0); + cimgui.c.igText("Memory Limit"); + } + { + _ = cimgui.c.igTableSetColumnIndex(1); + cimgui.c.igText("%d bytes", kitty_images.total_limit); + } + } + + { + cimgui.c.igTableNextRow(cimgui.c.ImGuiTableRowFlags_None, 0); + { + _ = cimgui.c.igTableSetColumnIndex(0); + cimgui.c.igText("Image Count"); + } + { + _ = cimgui.c.igTableSetColumnIndex(1); + cimgui.c.igText("%d", kitty_images.images.count()); + } + } + + { + cimgui.c.igTableNextRow(cimgui.c.ImGuiTableRowFlags_None, 0); + { + _ = cimgui.c.igTableSetColumnIndex(0); + cimgui.c.igText("Placement Count"); + } + { + _ = cimgui.c.igTableSetColumnIndex(1); + cimgui.c.igText("%d", kitty_images.placements.count()); + } + } + + { + cimgui.c.igTableNextRow(cimgui.c.ImGuiTableRowFlags_None, 0); + { + _ = cimgui.c.igTableSetColumnIndex(0); + cimgui.c.igText("Image Loading"); + } + { + _ = cimgui.c.igTableSetColumnIndex(1); + cimgui.c.igText("%s", if (kitty_images.loading != null) "true".ptr else "false".ptr); + } + } + } // table + } // kitty graphics } /// The modes window shows the currently active terminal modes and allows