#pragma once #include #include #ifdef HAVE_XKBCOMMON #include #else typedef uint32_t xkb_keysym_t; #endif #ifdef VK_USE_PLATFORM_XLIB_KHR #include "loaders/loader_x11.h" #endif #ifdef VK_USE_PLATFORM_XCB_KHR #include #endif #ifdef VK_USE_PLATFORM_WAYLAND_KHR #include #endif struct wsi_connection { std::function focus_changed; std::function key_pressed; std::function& keys)> keys_are_pressed; #ifdef VK_USE_PLATFORM_XCB_KHR struct xcb { xcb_connection_t *conn; xcb_window_t window; } xcb; #endif #ifdef VK_USE_PLATFORM_XLIB_KHR struct xlib { Display *dpy; Window window; int evmask; } xlib; #endif #ifdef VK_USE_PLATFORM_WAYLAND_KHR struct wl { wl_display *display; wl_surface *surface; } wl; #endif }; // struct wsi_connection; // bool check_window_focus(const wsi_connection&); void wsi_wayland_init(wsi_connection& conn);