shm: add damage tracking to buffer

This commit is contained in:
Daniel Eklöf 2021-05-07 20:20:47 +02:00
parent c8b342ae51
commit 434c9c3a34
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 9 additions and 0 deletions

5
shm.c
View file

@ -102,6 +102,9 @@ buffer_destroy(struct buffer *buf)
buf->real_mmapped = MAP_FAILED;
buf->pool = NULL;
buf->fd = -1;
tll_free(buf->scroll_damage);
pixman_region32_fini(&buf->dirty);
}
void
@ -399,6 +402,8 @@ shm_get_buffer(struct wl_shm *shm, int width, int height, unsigned long cookie,
if (!instantiate_offset(shm, ret, initial_offset))
goto err;
pixman_region32_init(&ret->dirty);
#if defined(MEASURE_SHM_ALLOCS) && MEASURE_SHM_ALLOCS
{
size_t currently_alloced = 0;

4
shm.h
View file

@ -7,6 +7,8 @@
#include <pixman.h>
#include <wayland-client.h>
#include "terminal.h"
struct buffer {
unsigned long cookie;
@ -34,6 +36,8 @@ struct buffer {
bool purge; /* True if this buffer should be destroyed */
int age;
tll (struct damage) scroll_damage;
pixman_region32_t dirty;
};
struct buffer *shm_get_buffer(