#include #include #include #include #include #include #include #include "xdg-shell-client-protocol.h" #include "input.h" #include "window.h" #include "registry.h" // core is now split into modules: registry, input and window // resize, draw and frame callbacks moved to `window.c` /* Input, window and registry logic has been moved into separate modules. * This file now wires them together and runs the main loop. */ /* Window events moved to `window.c` */ /* frame callback now in `window.c` */ /* ping/pong moved to `window.c` */ // Функция для прослушивания глобальных объектов /* registry listener moved to `registry.c` */ // No registry functions here; they are implemented in `registry.c`. /* listeners implemented in modules */ int32_t run_wayland() { struct wl_display *display = wl_display_connect(0); if (!display) return -1; struct wl_registry *registry = wl_display_get_registry(display); registry_add_listener(registry); wl_display_roundtrip(display); struct wayland_window win; if (window_init(display, &win) < 0) return -1; while (wl_display_dispatch(display)) { if (window_should_close(&win)) { printf("Window closing\n"); break; } } window_destroy(&win); input_cleanup(); wl_display_disconnect(display); return 0; }