mirror of
https://github.com/tmux/tmux.git
synced 2026-10-16 00:14:23 +00:00
Image storage and helper changes from the Kitty additions.
This commit is contained in:
52
tmux-image.h
52
tmux-image.h
@@ -43,29 +43,40 @@ struct tty;
|
||||
/* Backend images move with terminal scrolling. */
|
||||
#define IMAGE_BACKEND_SCROLLS 0x2
|
||||
|
||||
/* View of all or part of an image. */
|
||||
struct image_view {
|
||||
/* Position and size in the image, in pixels. */
|
||||
u_int x;
|
||||
u_int y;
|
||||
u_int width;
|
||||
u_int height;
|
||||
/* Source image and placement geometry. */
|
||||
struct image_geom {
|
||||
/* Position and size within the source RGBA pixels. */
|
||||
u_int src_x;
|
||||
u_int src_y;
|
||||
u_int src_w;
|
||||
u_int src_h;
|
||||
|
||||
/* Size after scaling, in pixels. */
|
||||
u_int scaled_width;
|
||||
u_int scaled_height;
|
||||
|
||||
/* Destination canvas size and offset in pixels. */
|
||||
/* Actual image size in pixels, including padding. */
|
||||
u_int canvas_width;
|
||||
u_int canvas_height;
|
||||
|
||||
/* Content offset within the canvas, in pixels. */
|
||||
u_int canvas_xoff;
|
||||
u_int canvas_yoff;
|
||||
|
||||
/* Destination size in terminal cells. */
|
||||
/* Scaled source size in pixels, excluding padding. */
|
||||
double scaled_width;
|
||||
double scaled_height;
|
||||
|
||||
/* Actual image size in cells, including padding. */
|
||||
u_int sx;
|
||||
u_int sy;
|
||||
};
|
||||
|
||||
/* Bounds within a source image, in pixels. */
|
||||
struct image_bounds {
|
||||
double left;
|
||||
double top;
|
||||
double right;
|
||||
double bottom;
|
||||
double area;
|
||||
};
|
||||
|
||||
/* A part of an image to draw. */
|
||||
struct image_rect {
|
||||
struct image *image;
|
||||
@@ -84,17 +95,18 @@ struct image_rect {
|
||||
};
|
||||
|
||||
/* image.c */
|
||||
struct image *image_create(u_int, u_int, u_int, u_int, u_int, u_int,
|
||||
u_char *);
|
||||
struct image *image_create_view(struct image *, struct image_view *);
|
||||
struct image *image_create(struct image_geom *, u_char *);
|
||||
struct image *image_create_with_parent(struct image *, struct image_geom *,
|
||||
size_t, u_char *);
|
||||
struct image *image_find(u_int);
|
||||
u_int image_get_id(struct image *);
|
||||
void image_ref(struct image *);
|
||||
void image_free(struct image *);
|
||||
void image_get_size(struct image *, u_int *, u_int *);
|
||||
void image_get_canvas_size(struct image *, u_int *, u_int *);
|
||||
void image_get_size_in_cells(struct image *, u_int *, u_int *);
|
||||
const u_char *image_get_pixels(struct image *, size_t *, size_t *);
|
||||
struct image_geom *image_get_geometry(struct image *);
|
||||
u_char *image_get_pixels(struct image *, size_t *, size_t *);
|
||||
int image_get_bounds(struct image_geom *, u_int, u_int, u_int,
|
||||
u_int, u_int, u_int, struct image_bounds *);
|
||||
u_char *image_get_pixel(struct image *, u_int, u_int, u_int, u_int);
|
||||
void image_size_in_cells(u_int, u_int, u_int, u_int, u_int *,
|
||||
u_int *);
|
||||
void image_get_pixel_area(struct image *, u_int, u_int, u_int,
|
||||
|
||||
Reference in New Issue
Block a user