diff options
| author | Hannes Schulze <haschu0103@outlook.de> | 2026-04-06 07:19:48 +0200 |
|---|---|---|
| committer | Hannes Schulze <haschu0103@outlook.de> | 2026-04-06 07:20:06 +0200 |
| commit | 92da08078a5459ca1089743eb58385e752bdb5fa (patch) | |
| tree | e1c63ba933610dbee41182c547a4a1f04d95723b /server/server.c | |
| parent | 578b90344c4e9be44955d4c4779f452c0b8dc036 (diff) | |
fix generic new_ids
Diffstat (limited to 'server/server.c')
| -rw-r--r-- | server/server.c | 24 |
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); |
