wip: use a sliding window instead of memmove() to scroll

Instead of memmoving a large amount of data on every scroll, use a
sliding window. That is, each time we scroll, we offset origin.
This commit is contained in:
Daniel Eklöf 2019-07-01 12:23:38 +02:00
parent 9e3b8ab3ff
commit d70956da08
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
7 changed files with 140 additions and 108 deletions

6
vt.c
View file

@ -678,7 +678,11 @@ action(struct terminal *term, enum action action, uint8_t c)
term_cursor_to(term, term->cursor.row + 1, 0);
}
struct cell *cell = &term->grid->cells[term->cursor.linear];
size_t cell_count = 1;
struct cell *cell = grid_get_range(
term->grid, term->cursor.linear, &cell_count);
assert(cell_count == 1);
term_damage_update(term, term->cursor.linear, 1);
if (term->vt.utf8.idx > 0) {