aboutsummaryrefslogtreecommitdiff
path: root/vendor/libghostty-vt/src/terminal/kitty/graphics_render.zig
blob: 946b537a8802b16fe83d1359c6c420f5d5e259a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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,
};