aboutsummaryrefslogtreecommitdiff
path: root/registry.c
diff options
context:
space:
mode:
authorRiley Beckett <rbeckettvt@gmail.com>2025-10-10 20:31:37 -0400
committerRiley Beckett <rbeckettvt@gmail.com>2025-10-10 20:31:37 -0400
commitf23baade916e844b6b6c9714e6b5d81020f6ba57 (patch)
treeccec37f011edf2c2685745d8bf678d5bf1bc8545 /registry.c
parent8a640b5309d01c363ec0eff24d7f8d96c6f3e23e (diff)
minimal layer surface code
Diffstat (limited to 'registry.c')
-rw-r--r--registry.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/registry.c b/registry.c
new file mode 100644
index 0000000..2f98d12
--- /dev/null
+++ b/registry.c
@@ -0,0 +1,39 @@
+#include <stdio.h>
+#include <string.h>
+
+#include "./state.h"
+
+extern struct wl_seat_listener seat_listener;
+
+void global(void *data, struct wl_registry *wl_registry, uint32_t name, const char *interface, uint32_t version) {
+ client_state* state = data;
+
+ printf("iface: %s v%d\n", interface, version);
+
+ if (!strcmp(interface, wl_compositor_interface.name)) {
+ state->compositor = wl_registry_bind(wl_registry, name, &wl_compositor_interface, 1);
+ }
+ else if (!strcmp(interface, wl_seat_interface.name)) {
+ state->seat = wl_registry_bind(wl_registry, name, &wl_seat_interface, 1);
+ wl_seat_add_listener(state->seat, &seat_listener, state);
+ }
+ else if (!strcmp(interface, zwlr_layer_shell_v1_interface.name)) {
+ state->layer_shell = wl_registry_bind(wl_registry, name, &zwlr_layer_shell_v1_interface, version);
+ }
+ else if (!strcmp(interface, wp_cursor_shape_manager_v1_interface.name)) {
+ state->cursor_shape_manager = wl_registry_bind(
+ wl_registry, name, &wp_cursor_shape_manager_v1_interface, version);
+ }
+ else {
+ }
+
+}
+
+void global_remove(void *data, struct wl_registry *wl_registry, uint32_t name) {
+
+}
+
+struct wl_registry_listener registry_listener = {
+ .global = global,
+ .global_remove = global_remove,
+};