aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2021-08-11 10:00:07 +0200
committerSimon Ser <contact@emersion.fr>2021-08-12 10:22:19 +0200
commit93964012e66116e66a2efb2ef4d395f1141b9f13 (patch)
treefaf3e72eb50da4f7015d72152539344b9748036d
parent20404ed8bb3ccad39e8c1458d9b1468741c0bc72 (diff)
buffer: add addon set
This allows wlr_buffer users to extend it with tjeir own state.
-rw-r--r--include/wlr/types/wlr_buffer.h3
-rw-r--r--types/wlr_buffer.c2
2 files changed, 5 insertions, 0 deletions
diff --git a/include/wlr/types/wlr_buffer.h b/include/wlr/types/wlr_buffer.h
index 5dc8271d..b4be3226 100644
--- a/include/wlr/types/wlr_buffer.h
+++ b/include/wlr/types/wlr_buffer.h
@@ -12,6 +12,7 @@
#include <pixman.h>
#include <wayland-server-core.h>
#include <wlr/render/dmabuf.h>
+#include <wlr/util/addon.h>
struct wlr_buffer;
struct wlr_renderer;
@@ -67,6 +68,8 @@ struct wlr_buffer {
struct wl_signal destroy;
struct wl_signal release;
} events;
+
+ struct wlr_addon_set addons;
};
struct wlr_buffer_resource_interface {
diff --git a/types/wlr_buffer.c b/types/wlr_buffer.c
index 94b42d4a..21c274c0 100644
--- a/types/wlr_buffer.c
+++ b/types/wlr_buffer.c
@@ -21,6 +21,7 @@ void wlr_buffer_init(struct wlr_buffer *buffer,
buffer->height = height;
wl_signal_init(&buffer->events.destroy);
wl_signal_init(&buffer->events.release);
+ wlr_addon_set_init(&buffer->addons);
}
static void buffer_consider_destroy(struct wlr_buffer *buffer) {
@@ -31,6 +32,7 @@ static void buffer_consider_destroy(struct wlr_buffer *buffer) {
assert(!buffer->accessing_data_ptr);
wlr_signal_emit_safe(&buffer->events.destroy, NULL);
+ wlr_addon_set_finish(&buffer->addons);
buffer->impl->destroy(buffer);
}