aboutsummaryrefslogtreecommitdiff
path: root/vendor/libghostty-vt/src/termio/Options.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/termio/Options.zig
parent55c138263e190a1e79d4b997bfb9397306c0ec1f (diff)
feat: finish ghostty pane backend integration
Diffstat (limited to 'vendor/libghostty-vt/src/termio/Options.zig')
-rw-r--r--vendor/libghostty-vt/src/termio/Options.zig41
1 files changed, 41 insertions, 0 deletions
diff --git a/vendor/libghostty-vt/src/termio/Options.zig b/vendor/libghostty-vt/src/termio/Options.zig
new file mode 100644
index 00000000..a6bf8c4d
--- /dev/null
+++ b/vendor/libghostty-vt/src/termio/Options.zig
@@ -0,0 +1,41 @@
+//! The options that are used to configure a terminal IO implementation.
+
+const xev = @import("../global.zig").xev;
+const apprt = @import("../apprt.zig");
+const renderer = @import("../renderer.zig");
+const Config = @import("../config.zig").Config;
+const termio = @import("../termio.zig");
+
+/// All size metrics for the terminal.
+size: renderer.Size,
+
+/// The full app configuration. This is only available during initialization.
+/// The memory it points to is NOT stable after the init call so any values
+/// in here must be copied.
+full_config: *const Config,
+
+/// The derived configuration for this termio implementation.
+config: termio.Termio.DerivedConfig,
+
+/// The backend for termio that implements where reads/writes are sourced.
+backend: termio.Backend,
+
+/// The mailbox for the terminal. This is how messages are delivered.
+/// If you're using termio.Thread this MUST be "mailbox".
+mailbox: termio.Mailbox,
+
+/// The render state. The IO implementation can modify anything here. The
+/// surface thread will setup the initial "terminal" pointer but the IO impl
+/// is free to change that if that is useful (i.e. doing some sort of dual
+/// terminal implementation.)
+renderer_state: *renderer.State,
+
+/// A handle to wake up the renderer. This hints to the renderer that
+/// a repaint should happen.
+renderer_wakeup: xev.Async,
+
+/// The mailbox for renderer messages.
+renderer_mailbox: *renderer.Thread.Mailbox,
+
+/// The mailbox for sending the surface messages.
+surface_mailbox: apprt.surface.Mailbox,