Implement rendering of multi cursors in the shaders

This commit is contained in:
Kovid Goyal
2025-08-24 15:22:14 +05:30
parent b2f543f9bd
commit c393c1679e
7 changed files with 32 additions and 29 deletions

View File

@@ -109,9 +109,10 @@ typedef struct {
id_type window_id;
Selections selections, url_ranges;
struct {
unsigned int cursor_x, cursor_y, scrolled_by;
unsigned int scrolled_by;
index_type lines, columns;
color_type cursor_bg;
CursorRenderInfo cursor;
} last_rendered;
bool is_dirty, scroll_changed, reload_all_gpu_data;
Cursor *cursor;
@@ -265,6 +266,7 @@ bool screen_has_selection(Screen*);
bool screen_invert_colors(Screen *self);
void screen_update_cell_data(Screen *self, void *address, FONTS_DATA_HANDLE, bool cursor_has_moved);
bool screen_is_cursor_visible(const Screen *self);
unsigned screen_multi_cursor_count(const Screen *self);
bool screen_selection_range_for_line(Screen *self, index_type y, index_type *start, index_type *end);
bool screen_selection_range_for_word(Screen *self, const index_type x, const index_type y, index_type *, index_type *, index_type *start, index_type *end, bool);
void screen_start_selection(Screen *self, index_type x, index_type y, bool, bool, SelectionExtendMode);