foot/sixel.h
Daniel Eklöf e896c2fa55
sixel: refactor handling of wrap-around delete- and split regions
Handle these on a higher abstraction level. The low level functions
that detect sixel intersections now assume the specified rectangle (or
line region) does *not* cross the wrap-around.

This is ensured by detecting a wrap-around region before hand, and
splitting it up into two, non wrapping regions.
2020-06-27 13:56:13 +02:00

28 lines
994 B
C

#pragma once
#include "terminal.h"
#define SIXEL_MAX_COLORS 1024u
void sixel_fini(struct terminal *term);
void sixel_init(struct terminal *term);
void sixel_put(struct terminal *term, uint8_t c);
void sixel_unhook(struct terminal *term);
void sixel_destroy(struct sixel *sixel);
/* Row numbers are relative to current grid offset */
void sixel_delete_in_range(struct terminal *term, int row_start, int row_end);
void sixel_delete_at_row(struct terminal *term, int row);
void sixel_split_at_cursor(struct terminal *term);
void sixel_colors_report_current(struct terminal *term);
void sixel_colors_reset(struct terminal *term);
void sixel_colors_set(struct terminal *term, unsigned count);
void sixel_colors_report_max(struct terminal *term);
void sixel_geometry_report_current(struct terminal *term);
void sixel_geometry_reset(struct terminal *term);
void sixel_geometry_set(struct terminal *term, unsigned width, unsigned height);
void sixel_geometry_report_max(struct terminal *term);