summaryrefslogtreecommitdiff
path: root/server/server.c
diff options
context:
space:
mode:
authorHannes Schulze <haschu0103@outlook.de>2026-04-06 07:19:48 +0200
committerHannes Schulze <haschu0103@outlook.de>2026-04-06 07:20:06 +0200
commit92da08078a5459ca1089743eb58385e752bdb5fa (patch)
treee1c63ba933610dbee41182c547a4a1f04d95723b /server/server.c
parent578b90344c4e9be44955d4c4779f452c0b8dc036 (diff)
fix generic new_ids
Diffstat (limited to 'server/server.c')
-rw-r--r--server/server.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/server/server.c b/server/server.c
index 3687865..1264513 100644
--- a/server/server.c
+++ b/server/server.c
@@ -8,6 +8,28 @@ static void die(char const* s)
exit(EXIT_FAILURE);
}
+static void on_release_shm(struct wl_client* client, struct wl_resource* resource)
+{
+ fprintf(stderr, "Releasing shm %p\n", (void*)resource);
+ wl_resource_destroy(resource);
+}
+
+static const struct wl_shm_interface shm_impl = {
+ .release = on_release_shm,
+};
+
+static void on_destroy_shm(struct wl_resource* resource)
+{
+ fprintf(stderr, "Destroyed shm %p\n", (void*)resource);
+}
+
+static void on_bind_shm(struct wl_client *client, void *data, uint32_t version, uint32_t id)
+{
+ struct wl_resource* resource = wl_resource_create(client, &wl_shm_interface, wl_shm_interface.version, id);
+ fprintf(stderr, "Bound shm %p\n", (void*)resource);
+ wl_resource_set_implementation(resource, &shm_impl, NULL, on_destroy_shm);
+}
+
int main(int argc, char** argv)
{
struct wl_display* disp = wl_display_create();
@@ -18,6 +40,8 @@ int main(int argc, char** argv)
printf("Compositor running on %s\n", sock);
+ wl_global_create(disp, &wl_shm_interface, wl_shm_interface.version, NULL, on_bind_shm);
+
wl_display_run(disp);
wl_display_destroy(disp);