27#include <wayland-client.h>
28#include <xkbcommon/xkbcommon.h>
29#ifdef HAVE_XKBCOMMON_COMPOSE_H
30#include <xkbcommon/xkbcommon-compose.h>
57#include "wayland-xdg-shell-client-protocol.h"
58#include "wayland-xdg-decoration-client-protocol.h"
59#include "wayland-viewporter-client-protocol.h"
60#include "wayland-relative-pointer-unstable-v1-client-protocol.h"
61#include "wayland-pointer-constraints-unstable-v1-client-protocol.h"
62#include "wayland-idle-inhibit-unstable-v1-client-protocol.h"
64#define _glfw_dlopen(name) dlopen(name, RTLD_LAZY | RTLD_LOCAL)
65#define _glfw_dlclose(handle) dlclose(handle)
66#define _glfw_dlsym(handle, name) dlsym(handle, name)
68#define _GLFW_PLATFORM_WINDOW_STATE _GLFWwindowWayland wl
69#define _GLFW_PLATFORM_LIBRARY_WINDOW_STATE _GLFWlibraryWayland wl
70#define _GLFW_PLATFORM_MONITOR_STATE _GLFWmonitorWayland wl
71#define _GLFW_PLATFORM_CURSOR_STATE _GLFWcursorWayland wl
73#define _GLFW_PLATFORM_CONTEXT_STATE struct { int dummyContext; }
74#define _GLFW_PLATFORM_LIBRARY_CONTEXT_STATE struct { int dummyLibraryContext; }
88typedef struct wl_cursor_theme* (* PFN_wl_cursor_theme_load)(
const char*, int,
struct wl_shm*);
90typedef struct wl_cursor* (* PFN_wl_cursor_theme_get_cursor)(
struct wl_cursor_theme*,
const char*);
91typedef struct wl_buffer* (* PFN_wl_cursor_image_get_buffer)(
struct wl_cursor_image*);
92#define wl_cursor_theme_load _glfw.wl.cursor.theme_load
93#define wl_cursor_theme_destroy _glfw.wl.cursor.theme_destroy
94#define wl_cursor_theme_get_cursor _glfw.wl.cursor.theme_get_cursor
95#define wl_cursor_image_get_buffer _glfw.wl.cursor.image_get_buffer
97typedef struct wl_egl_window* (* PFN_wl_egl_window_create)(
struct wl_surface*, int, int);
100#define wl_egl_window_create _glfw.wl.egl.window_create
101#define wl_egl_window_destroy _glfw.wl.egl.window_destroy
102#define wl_egl_window_resize _glfw.wl.egl.window_resize
104typedef struct xkb_context* (* PFN_xkb_context_new)(
enum xkb_context_flags);
106typedef struct xkb_keymap* (* PFN_xkb_keymap_new_from_string)(
struct xkb_context*,
const char*,
enum xkb_keymap_format,
enum xkb_keymap_compile_flags);
110typedef struct xkb_state* (* PFN_xkb_state_new)(
struct xkb_keymap*);
113typedef enum xkb_state_component (*
PFN_xkb_state_update_mask)(
struct xkb_state*, xkb_mod_mask_t, xkb_mod_mask_t, xkb_mod_mask_t, xkb_layout_index_t, xkb_layout_index_t, xkb_layout_index_t);
115#define xkb_context_new _glfw.wl.xkb.context_new
116#define xkb_context_unref _glfw.wl.xkb.context_unref
117#define xkb_keymap_new_from_string _glfw.wl.xkb.keymap_new_from_string
118#define xkb_keymap_unref _glfw.wl.xkb.keymap_unref
119#define xkb_keymap_mod_get_index _glfw.wl.xkb.keymap_mod_get_index
120#define xkb_keymap_key_repeats _glfw.wl.xkb.keymap_key_repeats
121#define xkb_state_new _glfw.wl.xkb.state_new
122#define xkb_state_unref _glfw.wl.xkb.state_unref
123#define xkb_state_key_get_syms _glfw.wl.xkb.state_key_get_syms
124#define xkb_state_update_mask _glfw.wl.xkb.state_update_mask
125#define xkb_state_serialize_mods _glfw.wl.xkb.state_serialize_mods
127#ifdef HAVE_XKBCOMMON_COMPOSE_H
128typedef struct xkb_compose_table* (* PFN_xkb_compose_table_new_from_locale)(
struct xkb_context*,
const char*,
enum xkb_compose_compile_flags);
129typedef void (* PFN_xkb_compose_table_unref)(
struct xkb_compose_table*);
130typedef struct xkb_compose_state* (* PFN_xkb_compose_state_new)(
struct xkb_compose_table*,
enum xkb_compose_state_flags);
131typedef void (* PFN_xkb_compose_state_unref)(
struct xkb_compose_state*);
132typedef enum xkb_compose_feed_result (* PFN_xkb_compose_state_feed)(
struct xkb_compose_state*, xkb_keysym_t);
133typedef enum xkb_compose_status (* PFN_xkb_compose_state_get_status)(
struct xkb_compose_state*);
134typedef xkb_keysym_t (* PFN_xkb_compose_state_get_one_sym)(
struct xkb_compose_state*);
135#define xkb_compose_table_new_from_locale _glfw.wl.xkb.compose_table_new_from_locale
136#define xkb_compose_table_unref _glfw.wl.xkb.compose_table_unref
137#define xkb_compose_state_new _glfw.wl.xkb.compose_state_new
138#define xkb_compose_state_unref _glfw.wl.xkb.compose_state_unref
139#define xkb_compose_state_feed _glfw.wl.xkb.compose_state_feed
140#define xkb_compose_state_get_status _glfw.wl.xkb.compose_state_get_status
141#define xkb_compose_state_get_one_sym _glfw.wl.xkb.compose_state_get_one_sym
144#define _GLFW_DECORATION_WIDTH 4
145#define _GLFW_DECORATION_TOP 24
146#define _GLFW_DECORATION_VERTICAL (_GLFW_DECORATION_TOP + _GLFW_DECORATION_WIDTH)
147#define _GLFW_DECORATION_HORIZONTAL (2 * _GLFW_DECORATION_WIDTH)
267#ifdef HAVE_XKBCOMMON_COMPOSE_H
268 struct xkb_compose_state* composeState;
291#ifdef HAVE_XKBCOMMON_COMPOSE_H
292 PFN_xkb_compose_table_new_from_locale compose_table_new_from_locale;
293 PFN_xkb_compose_table_unref compose_table_unref;
294 PFN_xkb_compose_state_new compose_state_new;
295 PFN_xkb_compose_state_unref compose_state_unref;
296 PFN_xkb_compose_state_feed compose_state_feed;
297 PFN_xkb_compose_state_get_status compose_state_get_status;
298 PFN_xkb_compose_state_get_one_sym compose_state_get_one_sym;
#define APIENTRY
Compiler- and platform-specific preprocessor work.
struct wl_buffer * buffer
struct wl_cursor * cursor
struct wl_cursor * cursorHiDPI
struct wl_subsurface * subsurface
struct wp_viewport * viewport
struct wl_surface * surface
PFN_xkb_state_unref state_unref
struct zwp_pointer_constraints_v1 * pointerConstraints
const char * cursorPreviousName
struct wl_surface * cursorSurface
struct wl_pointer * pointer
struct wl_data_device_manager * dataDeviceManager
_GLFWwindow * keyboardFocus
PFN_xkb_keymap_unref keymap_unref
short int scancodes[GLFW_KEY_LAST+1]
struct xkb_keymap * keymap
PFN_xkb_state_key_get_syms state_key_get_syms
struct xdg_wm_base * wmBase
PFN_wl_egl_window_create window_create
xkb_mod_mask_t capsLockMask
char * clipboardSendString
PFN_wl_cursor_theme_load theme_load
xkb_mod_mask_t numLockMask
PFN_xkb_keymap_new_from_string keymap_new_from_string
xkb_mod_mask_t controlMask
int32_t keyboardRepeatDelay
PFN_xkb_state_update_mask state_update_mask
PFN_wl_egl_window_destroy window_destroy
PFN_xkb_state_new state_new
_GLFWwindow * pointerFocus
PFN_xkb_context_new context_new
struct zxdg_decoration_manager_v1 * decorationManager
struct wl_cursor_theme * cursorTheme
struct wl_subcompositor * subcompositor
struct xkb_context * context
struct wl_cursor_theme * cursorThemeHiDPI
PFN_wl_egl_window_resize window_resize
struct _GLFWlibraryWayland::@39 egl
PFN_xkb_context_unref context_unref
struct wl_display * display
PFN_wl_cursor_theme_get_cursor theme_get_cursor
PFN_xkb_state_serialize_mods state_serialize_mods
PFN_xkb_keymap_mod_get_index keymap_mod_get_index
struct wl_data_offer * dataOffer
PFN_wl_cursor_theme_destroy theme_destroy
int32_t keyboardRepeatRate
struct wl_data_device * dataDevice
struct zwp_relative_pointer_manager_v1 * relativePointerManager
struct wl_data_source * dataSource
struct _GLFWlibraryWayland::@38 cursor
struct wl_keyboard * keyboard
struct _GLFWlibraryWayland::@37 xkb
PFN_xkb_keymap_key_repeats keymap_key_repeats
struct wl_compositor * compositor
PFN_wl_cursor_image_get_buffer image_get_buffer
struct zwp_idle_inhibit_manager_v1 * idleInhibitManager
struct wl_registry * registry
struct wp_viewporter * viewporter
struct wl_output * output
struct wl_buffer * buffer
struct zwp_locked_pointer_v1 * lockedPointer
struct _GLFWwindowWayland::@34 xdg
struct wl_surface * surface
struct zwp_relative_pointer_v1 * relativePointer
struct zwp_idle_inhibitor_v1 * idleInhibitor
struct xdg_toplevel * toplevel
struct zxdg_toplevel_decoration_v1 * decoration
_GLFWcursor * currentCursor
struct wl_callback * callback
struct wl_egl_window * native
struct xdg_surface * surface
_GLFWdecorationWayland bottom
struct _GLFWwindowWayland::@35 pointerLock
struct _GLFWwindowWayland::@36 decorations
VkWaylandSurfaceCreateFlagsKHR flags
struct wl_display * display
struct wl_surface * surface
struct wl_cursor_image ** images