aboutsummaryrefslogtreecommitdiff
path: root/vendor/libghostty-vt/src/terminal/kitty/graphics_render.zig
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/libghostty-vt/src/terminal/kitty/graphics_render.zig')
-rw-r--r--vendor/libghostty-vt/src/terminal/kitty/graphics_render.zig27
1 files changed, 27 insertions, 0 deletions
diff --git a/vendor/libghostty-vt/src/terminal/kitty/graphics_render.zig b/vendor/libghostty-vt/src/terminal/kitty/graphics_render.zig
new file mode 100644
index 00000000..946b537a
--- /dev/null
+++ b/vendor/libghostty-vt/src/terminal/kitty/graphics_render.zig
@@ -0,0 +1,27 @@
+const std = @import("std");
+const testing = std.testing;
+const terminal = @import("../main.zig");
+
+/// A render placement is a way to position a Kitty graphics image onto
+/// the screen. It is broken down into the fields that make it easier to
+/// position the image using a renderer.
+pub const Placement = struct {
+ /// The top-left corner of the image in grid coordinates.
+ top_left: terminal.Pin,
+
+ /// The offset in pixels from the top-left corner of the grid cell.
+ offset_x: u32 = 0,
+ offset_y: u32 = 0,
+
+ /// The source rectangle of the image to render. This doesn't have to
+ /// match the size the destination size and the renderer is expected
+ /// to scale the image to fit the destination size.
+ source_x: u32 = 0,
+ source_y: u32 = 0,
+ source_width: u32 = 0,
+ source_height: u32 = 0,
+
+ /// The final width/height of the image in pixels.
+ dest_width: u32 = 0,
+ dest_height: u32 = 0,
+};