scaled-scene-buffer: implement buffer sharing mechanism

Implementers can define impl->equal() which compares two
scaled-scene-buffers so that buffers are not allocated for visually
duplicated scaled-scene-buffers.

Currently this mechanism isn't applied for scaled-font-buffers since we
haven't defined impl->equal() for it.
This commit is contained in:
tokyo4j 2024-11-19 05:03:26 +09:00 committed by Johan Malm
parent f071431266
commit c893878aca
3 changed files with 97 additions and 20 deletions

View file

@ -53,8 +53,8 @@ scaled_font_buffer_create(struct wlr_scene_tree *parent)
{
assert(parent);
struct scaled_font_buffer *self = znew(*self);
struct scaled_scene_buffer *scaled_buffer =
scaled_scene_buffer_create(parent, &impl, /* drop_buffer */ true);
struct scaled_scene_buffer *scaled_buffer = scaled_scene_buffer_create(
parent, &impl, NULL, /* drop_buffer */ true);
if (!scaled_buffer) {
free(self);
return NULL;