#ifndef WAYLAND_REGISTRY_H
#define WAYLAND_REGISTRY_H

#include <wayland-client.h>

/* Initialize registry listener on the given registry */
void registry_add_listener(struct wl_registry *registry);

/* Prepare per-thread bindings for compositor/shm/xdg_wm_base */
int registry_thread_bind(struct wl_display *display, struct wl_event_queue *queue);

/* Release per-thread resources allocated by registry_thread_bind */
void registry_thread_unbind(void);

/* Reset global registry bookkeeping (used during teardown) */
void registry_reset_globals(void);

/* Accessors for bound globals (per-thread via registry_thread_bind) */
struct wl_compositor *registry_get_compositor(void);
struct wl_shm *registry_get_shm(void);
struct xdg_wm_base *registry_get_xdg_wm_base(void);

#endif
