summaryrefslogtreecommitdiff
path: root/src/wayland-server.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/wayland-server.c')
-rw-r--r--src/wayland-server.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/wayland-server.c b/src/wayland-server.c
index 824f9d1..1498d51 100644
--- a/src/wayland-server.c
+++ b/src/wayland-server.c
@@ -92,6 +92,8 @@ struct wl_display {
struct wl_list client_list;
struct wl_signal destroy_signal;
+
+ struct wl_array additional_shm_formats;
};
struct wl_global {
@@ -711,6 +713,8 @@ wl_display_create(void)
display->id = 1;
display->serial = 0;
+ wl_array_init(&display->additional_shm_formats);
+
if (!wl_global_create(display, &wl_display_interface, 1,
display, bind_display)) {
wl_event_loop_destroy(display->loop);
@@ -1168,3 +1172,18 @@ wl_display_remove_global(struct wl_display *display, struct wl_global *global)
{
wl_global_destroy(global);
}
+
+WL_EXPORT void
+wl_display_add_shm_format(struct wl_display *display, uint32_t format)
+{
+ uint32_t *p;
+
+ p = wl_array_add(&display->additional_shm_formats, sizeof *p);
+ *p = format;
+}
+
+struct wl_array *
+wl_display_get_additional_shm_formats(struct wl_display *display)
+{
+ return &display->additional_shm_formats;
+}