aboutsummaryrefslogtreecommitdiff
path: root/vendor/libghostty-vt/src/terminal/kitty/graphics.zig
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-04-04 19:22:04 +0300
committerCan Celik <ogulcancelik@gmail.com>2026-04-05 01:23:06 +0300
commit41dd733ca7123c9ac4bfc6c781697a660e95b052 (patch)
tree3fc91815ca139ef2e0b281bba0abda4ef15175f4 /vendor/libghostty-vt/src/terminal/kitty/graphics.zig
parent55c138263e190a1e79d4b997bfb9397306c0ec1f (diff)
feat: finish ghostty pane backend integration
Diffstat (limited to 'vendor/libghostty-vt/src/terminal/kitty/graphics.zig')
-rw-r--r--vendor/libghostty-vt/src/terminal/kitty/graphics.zig36
1 files changed, 36 insertions, 0 deletions
diff --git a/vendor/libghostty-vt/src/terminal/kitty/graphics.zig b/vendor/libghostty-vt/src/terminal/kitty/graphics.zig
new file mode 100644
index 00000000..c710f81a
--- /dev/null
+++ b/vendor/libghostty-vt/src/terminal/kitty/graphics.zig
@@ -0,0 +1,36 @@
+//! Kitty graphics protocol support.
+//!
+//! Documentation:
+//! https://sw.kovidgoyal.net/kitty/graphics-protocol
+//!
+//! Unimplemented features that are still todo:
+//! - shared memory transmit
+//! - virtual placement w/ unicode
+//! - animation
+//!
+//! Performance:
+//! The performance of this particular subsystem of Ghostty is not great.
+//! We can avoid a lot more allocations, we can replace some C code (which
+//! implicitly allocates) with native Zig, we can improve the data structures
+//! to avoid repeated lookups, etc. I tried to avoid pessimization but my
+//! aim to ship a v1 of this implementation came at some cost. I learned a lot
+//! though and I think we can go back through and fix this up.
+
+const render = @import("graphics_render.zig");
+const command = @import("graphics_command.zig");
+const exec = @import("graphics_exec.zig");
+const image = @import("graphics_image.zig");
+const storage = @import("graphics_storage.zig");
+pub const unicode = @import("graphics_unicode.zig");
+pub const Command = command.Command;
+pub const CommandParser = command.Parser;
+pub const Image = image.Image;
+pub const ImageStorage = storage.ImageStorage;
+pub const RenderPlacement = render.Placement;
+pub const Response = command.Response;
+
+pub const execute = exec.execute;
+
+test {
+ @import("std").testing.refAllDecls(@This());
+}