mirror of
https://github.com/ghostty-org/ghostty.git
synced 2026-08-02 21:59:05 +00:00
libghostty: introduce the kitty graphics opaque type
This commit is contained in:
8
src/terminal/c/kitty_graphics.zig
Normal file
8
src/terminal/c/kitty_graphics.zig
Normal file
@@ -0,0 +1,8 @@
|
||||
const build_options = @import("terminal_options");
|
||||
const kitty_gfx = @import("../kitty/graphics_storage.zig");
|
||||
|
||||
/// C: GhosttyKittyGraphics
|
||||
pub const KittyGraphics = if (build_options.kitty_graphics)
|
||||
*kitty_gfx.ImageStorage
|
||||
else
|
||||
*anyopaque;
|
||||
@@ -8,6 +8,7 @@ pub const color = @import("color.zig");
|
||||
pub const focus = @import("focus.zig");
|
||||
pub const formatter = @import("formatter.zig");
|
||||
pub const grid_ref = @import("grid_ref.zig");
|
||||
pub const kitty_graphics = @import("kitty_graphics.zig");
|
||||
pub const types = @import("types.zig");
|
||||
pub const modes = @import("modes.zig");
|
||||
pub const osc = @import("osc.zig");
|
||||
@@ -161,6 +162,7 @@ test {
|
||||
_ = cell;
|
||||
_ = color;
|
||||
_ = grid_ref;
|
||||
_ = kitty_graphics;
|
||||
_ = row;
|
||||
_ = focus;
|
||||
_ = formatter;
|
||||
|
||||
@@ -8,6 +8,7 @@ const Stream = @import("../stream_terminal.zig").Stream;
|
||||
const ScreenSet = @import("../ScreenSet.zig");
|
||||
const PageList = @import("../PageList.zig");
|
||||
const kitty = @import("../kitty/key.zig");
|
||||
const kitty_gfx_c = @import("kitty_graphics.zig");
|
||||
const modes = @import("../modes.zig");
|
||||
const point = @import("../point.zig");
|
||||
const size = @import("../size.zig");
|
||||
@@ -515,6 +516,9 @@ pub fn mode_set(
|
||||
return .success;
|
||||
}
|
||||
|
||||
/// C: GhosttyKittyGraphics
|
||||
pub const KittyGraphics = kitty_gfx_c.KittyGraphics;
|
||||
|
||||
/// C: GhosttyTerminalScreen
|
||||
pub const TerminalScreen = ScreenSet.Key;
|
||||
|
||||
@@ -553,6 +557,7 @@ pub const TerminalData = enum(c_int) {
|
||||
kitty_image_medium_file = 27,
|
||||
kitty_image_medium_temp_file = 28,
|
||||
kitty_image_medium_shared_mem = 29,
|
||||
kitty_graphics = 30,
|
||||
|
||||
/// Output type expected for querying the data of the given kind.
|
||||
pub fn OutType(comptime self: TerminalData) type {
|
||||
@@ -580,6 +585,7 @@ pub const TerminalData = enum(c_int) {
|
||||
.kitty_image_medium_temp_file,
|
||||
.kitty_image_medium_shared_mem,
|
||||
=> bool,
|
||||
.kitty_graphics => KittyGraphics,
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -664,6 +670,10 @@ fn getTyped(
|
||||
if (comptime !build_options.kitty_graphics) return .no_value;
|
||||
out.* = t.screens.active.kitty_images.image_limits.shared_memory;
|
||||
},
|
||||
.kitty_graphics => {
|
||||
if (comptime !build_options.kitty_graphics) return .no_value;
|
||||
out.* = &t.screens.active.kitty_images;
|
||||
},
|
||||
}
|
||||
|
||||
return .success;
|
||||
|
||||
Reference in New Issue
Block a user