wl_platform.h
Go to the documentation of this file.
1 //========================================================================
2 // GLFW 3.3 Wayland - www.glfw.org
3 //------------------------------------------------------------------------
4 // Copyright (c) 2014 Jonas Ã…dahl <jadahl@gmail.com>
5 //
6 // This software is provided 'as-is', without any express or implied
7 // warranty. In no event will the authors be held liable for any damages
8 // arising from the use of this software.
9 //
10 // Permission is granted to anyone to use this software for any purpose,
11 // including commercial applications, and to alter it and redistribute it
12 // freely, subject to the following restrictions:
13 //
14 // 1. The origin of this software must not be misrepresented; you must not
15 // claim that you wrote the original software. If you use this software
16 // in a product, an acknowledgment in the product documentation would
17 // be appreciated but is not required.
18 //
19 // 2. Altered source versions must be plainly marked as such, and must not
20 // be misrepresented as being the original software.
21 //
22 // 3. This notice may not be removed or altered from any source
23 // distribution.
24 //
25 //========================================================================
26 
27 #include <wayland-client.h>
28 #include <xkbcommon/xkbcommon.h>
29 #ifdef HAVE_XKBCOMMON_COMPOSE_H
30 #include <xkbcommon/xkbcommon-compose.h>
31 #endif
32 #include <dlfcn.h>
33 
35 
37 {
39  const void* pNext;
41  struct wl_display* display;
42  struct wl_surface* surface;
44 
47 
48 #include "posix_thread.h"
49 #include "posix_time.h"
50 #ifdef __linux__
51 #include "linux_joystick.h"
52 #else
53 #include "null_joystick.h"
54 #endif
55 #include "xkb_unicode.h"
56 #include "egl_context.h"
57 #include "osmesa_context.h"
58 
59 #include "wayland-xdg-shell-client-protocol.h"
60 #include "wayland-xdg-decoration-client-protocol.h"
61 #include "wayland-viewporter-client-protocol.h"
62 #include "wayland-relative-pointer-unstable-v1-client-protocol.h"
63 #include "wayland-pointer-constraints-unstable-v1-client-protocol.h"
64 #include "wayland-idle-inhibit-unstable-v1-client-protocol.h"
65 
66 #define _glfw_dlopen(name) dlopen(name, RTLD_LAZY | RTLD_LOCAL)
67 #define _glfw_dlclose(handle) dlclose(handle)
68 #define _glfw_dlsym(handle, name) dlsym(handle, name)
69 
70 #define _GLFW_EGL_NATIVE_WINDOW ((EGLNativeWindowType) window->wl.native)
71 #define _GLFW_EGL_NATIVE_DISPLAY ((EGLNativeDisplayType) _glfw.wl.display)
72 
73 #define _GLFW_PLATFORM_WINDOW_STATE _GLFWwindowWayland wl
74 #define _GLFW_PLATFORM_LIBRARY_WINDOW_STATE _GLFWlibraryWayland wl
75 #define _GLFW_PLATFORM_MONITOR_STATE _GLFWmonitorWayland wl
76 #define _GLFW_PLATFORM_CURSOR_STATE _GLFWcursorWayland wl
77 
78 #define _GLFW_PLATFORM_CONTEXT_STATE
79 #define _GLFW_PLATFORM_LIBRARY_CONTEXT_STATE
80 
82  uint32_t width;
83  uint32_t height;
84  uint32_t hotspot_x;
85  uint32_t hotspot_y;
86  uint32_t delay;
87 };
88 struct wl_cursor {
89  unsigned int image_count;
91  char* name;
92 };
93 typedef struct wl_cursor_theme* (* PFN_wl_cursor_theme_load)(const char*, int, struct wl_shm*);
94 typedef void (* PFN_wl_cursor_theme_destroy)(struct wl_cursor_theme*);
95 typedef struct wl_cursor* (* PFN_wl_cursor_theme_get_cursor)(struct wl_cursor_theme*, const char*);
96 typedef struct wl_buffer* (* PFN_wl_cursor_image_get_buffer)(struct wl_cursor_image*);
97 #define wl_cursor_theme_load _glfw.wl.cursor.theme_load
98 #define wl_cursor_theme_destroy _glfw.wl.cursor.theme_destroy
99 #define wl_cursor_theme_get_cursor _glfw.wl.cursor.theme_get_cursor
100 #define wl_cursor_image_get_buffer _glfw.wl.cursor.image_get_buffer
101 
102 typedef struct wl_egl_window* (* PFN_wl_egl_window_create)(struct wl_surface*, int, int);
103 typedef void (* PFN_wl_egl_window_destroy)(struct wl_egl_window*);
104 typedef void (* PFN_wl_egl_window_resize)(struct wl_egl_window*, int, int, int, int);
105 #define wl_egl_window_create _glfw.wl.egl.window_create
106 #define wl_egl_window_destroy _glfw.wl.egl.window_destroy
107 #define wl_egl_window_resize _glfw.wl.egl.window_resize
108 
109 typedef struct xkb_context* (* PFN_xkb_context_new)(enum xkb_context_flags);
110 typedef void (* PFN_xkb_context_unref)(struct xkb_context*);
111 typedef struct xkb_keymap* (* PFN_xkb_keymap_new_from_string)(struct xkb_context*, const char*, enum xkb_keymap_format, enum xkb_keymap_compile_flags);
112 typedef void (* PFN_xkb_keymap_unref)(struct xkb_keymap*);
113 typedef xkb_mod_index_t (* PFN_xkb_keymap_mod_get_index)(struct xkb_keymap*, const char*);
114 typedef int (* PFN_xkb_keymap_key_repeats)(struct xkb_keymap*, xkb_keycode_t);
115 typedef struct xkb_state* (* PFN_xkb_state_new)(struct xkb_keymap*);
116 typedef void (* PFN_xkb_state_unref)(struct xkb_state*);
117 typedef int (* PFN_xkb_state_key_get_syms)(struct xkb_state*, xkb_keycode_t, const xkb_keysym_t**);
118 typedef 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);
119 typedef xkb_mod_mask_t (* PFN_xkb_state_serialize_mods)(struct xkb_state*, enum xkb_state_component);
120 #define xkb_context_new _glfw.wl.xkb.context_new
121 #define xkb_context_unref _glfw.wl.xkb.context_unref
122 #define xkb_keymap_new_from_string _glfw.wl.xkb.keymap_new_from_string
123 #define xkb_keymap_unref _glfw.wl.xkb.keymap_unref
124 #define xkb_keymap_mod_get_index _glfw.wl.xkb.keymap_mod_get_index
125 #define xkb_keymap_key_repeats _glfw.wl.xkb.keymap_key_repeats
126 #define xkb_state_new _glfw.wl.xkb.state_new
127 #define xkb_state_unref _glfw.wl.xkb.state_unref
128 #define xkb_state_key_get_syms _glfw.wl.xkb.state_key_get_syms
129 #define xkb_state_update_mask _glfw.wl.xkb.state_update_mask
130 #define xkb_state_serialize_mods _glfw.wl.xkb.state_serialize_mods
131 
132 #ifdef HAVE_XKBCOMMON_COMPOSE_H
133 typedef struct xkb_compose_table* (* PFN_xkb_compose_table_new_from_locale)(struct xkb_context*, const char*, enum xkb_compose_compile_flags);
134 typedef void (* PFN_xkb_compose_table_unref)(struct xkb_compose_table*);
135 typedef struct xkb_compose_state* (* PFN_xkb_compose_state_new)(struct xkb_compose_table*, enum xkb_compose_state_flags);
136 typedef void (* PFN_xkb_compose_state_unref)(struct xkb_compose_state*);
137 typedef enum xkb_compose_feed_result (* PFN_xkb_compose_state_feed)(struct xkb_compose_state*, xkb_keysym_t);
138 typedef enum xkb_compose_status (* PFN_xkb_compose_state_get_status)(struct xkb_compose_state*);
139 typedef xkb_keysym_t (* PFN_xkb_compose_state_get_one_sym)(struct xkb_compose_state*);
140 #define xkb_compose_table_new_from_locale _glfw.wl.xkb.compose_table_new_from_locale
141 #define xkb_compose_table_unref _glfw.wl.xkb.compose_table_unref
142 #define xkb_compose_state_new _glfw.wl.xkb.compose_state_new
143 #define xkb_compose_state_unref _glfw.wl.xkb.compose_state_unref
144 #define xkb_compose_state_feed _glfw.wl.xkb.compose_state_feed
145 #define xkb_compose_state_get_status _glfw.wl.xkb.compose_state_get_status
146 #define xkb_compose_state_get_one_sym _glfw.wl.xkb.compose_state_get_one_sym
147 #endif
148 
149 #define _GLFW_DECORATION_WIDTH 4
150 #define _GLFW_DECORATION_TOP 24
151 #define _GLFW_DECORATION_VERTICAL (_GLFW_DECORATION_TOP + _GLFW_DECORATION_WIDTH)
152 #define _GLFW_DECORATION_HORIZONTAL (2 * _GLFW_DECORATION_WIDTH)
153 
155 {
161 
163 
165 {
166  struct wl_surface* surface;
167  struct wl_subsurface* subsurface;
168  struct wp_viewport* viewport;
169 
171 
172 // Wayland-specific per-window data
173 //
174 typedef struct _GLFWwindowWayland
175 {
176  int width, height;
181  struct wl_surface* surface;
182  struct wl_egl_window* native;
183  struct wl_shell_surface* shellSurface;
184  struct wl_callback* callback;
185 
186  struct {
187  struct xdg_surface* surface;
188  struct xdg_toplevel* toplevel;
189  struct zxdg_toplevel_decoration_v1* decoration;
190  } xdg;
191 
194 
195  char* title;
196 
197  // We need to track the monitors the window spans on to calculate the
198  // optimal scaling factor.
199  int scale;
203 
204  struct {
205  struct zwp_relative_pointer_v1* relativePointer;
206  struct zwp_locked_pointer_v1* lockedPointer;
207  } pointerLock;
208 
209  struct zwp_idle_inhibitor_v1* idleInhibitor;
210 
211  // This is a hack to prevent auto-iconification on creation.
213 
214  struct {
216  struct wl_buffer* buffer;
218  int focus;
219  } decorations;
220 
222 
223 // Wayland-specific global data
224 //
225 typedef struct _GLFWlibraryWayland
226 {
227  struct wl_display* display;
228  struct wl_registry* registry;
229  struct wl_compositor* compositor;
230  struct wl_subcompositor* subcompositor;
231  struct wl_shell* shell;
232  struct wl_shm* shm;
233  struct wl_seat* seat;
234  struct wl_pointer* pointer;
235  struct wl_keyboard* keyboard;
236  struct wl_data_device_manager* dataDeviceManager;
237  struct wl_data_device* dataDevice;
238  struct wl_data_offer* dataOffer;
239  struct wl_data_source* dataSource;
240  struct xdg_wm_base* wmBase;
241  struct zxdg_decoration_manager_v1* decorationManager;
242  struct wp_viewporter* viewporter;
243  struct zwp_relative_pointer_manager_v1* relativePointerManager;
244  struct zwp_pointer_constraints_v1* pointerConstraints;
245  struct zwp_idle_inhibit_manager_v1* idleInhibitManager;
246 
249 
250  struct wl_cursor_theme* cursorTheme;
251  struct wl_cursor_theme* cursorThemeHiDPI;
252  struct wl_surface* cursorSurface;
254  uint32_t serial;
255 
264  int timerfd;
265  short int keycodes[256];
266  short int scancodes[GLFW_KEY_LAST + 1];
267 
268  struct {
269  void* handle;
270  struct xkb_context* context;
271  struct xkb_keymap* keymap;
272  struct xkb_state* state;
273 
274 #ifdef HAVE_XKBCOMMON_COMPOSE_H
275  struct xkb_compose_state* composeState;
276 #endif
277 
278  xkb_mod_mask_t controlMask;
279  xkb_mod_mask_t altMask;
280  xkb_mod_mask_t shiftMask;
281  xkb_mod_mask_t superMask;
282  xkb_mod_mask_t capsLockMask;
283  xkb_mod_mask_t numLockMask;
284  unsigned int modifiers;
285 
297 
298 #ifdef HAVE_XKBCOMMON_COMPOSE_H
299  PFN_xkb_compose_table_new_from_locale compose_table_new_from_locale;
300  PFN_xkb_compose_table_unref compose_table_unref;
301  PFN_xkb_compose_state_new compose_state_new;
302  PFN_xkb_compose_state_unref compose_state_unref;
303  PFN_xkb_compose_state_feed compose_state_feed;
304  PFN_xkb_compose_state_get_status compose_state_get_status;
305  PFN_xkb_compose_state_get_one_sym compose_state_get_one_sym;
306 #endif
307  } xkb;
308 
311 
312  struct {
313  void* handle;
314 
319  } cursor;
320 
321  struct {
322  void* handle;
323 
327  } egl;
328 
330 
331 // Wayland-specific per-monitor data
332 //
333 typedef struct _GLFWmonitorWayland
334 {
335  struct wl_output* output;
336  int name;
338 
339  int x;
340  int y;
341  int scale;
342 
344 
345 // Wayland-specific per-cursor data
346 //
347 typedef struct _GLFWcursorWayland
348 {
349  struct wl_cursor* cursor;
351  struct wl_buffer* buffer;
352  int width, height;
353  int xhot, yhot;
356 
357 
358 void _glfwAddOutputWayland(uint32_t name, uint32_t version);
359 
_GLFWlibraryWayland::theme_get_cursor
PFN_wl_cursor_theme_get_cursor theme_get_cursor
Definition: wl_platform.h:317
posix_thread.h
PFN_xkb_state_new
struct xkb_state *(* PFN_xkb_state_new)(struct xkb_keymap *)
Definition: wl_platform.h:115
VkWaylandSurfaceCreateInfoKHR
Definition: wl_platform.h:36
linux_joystick.h
_GLFWdecorationWayland
struct _GLFWdecorationWayland _GLFWdecorationWayland
_GLFWlibraryWayland::state_serialize_mods
PFN_xkb_state_serialize_mods state_serialize_mods
Definition: wl_platform.h:296
PFN_wl_cursor_image_get_buffer
struct wl_buffer *(* PFN_wl_cursor_image_get_buffer)(struct wl_cursor_image *)
Definition: wl_platform.h:96
VkSurfaceKHR
uint64_t VkSurfaceKHR
Definition: internal.h:121
_GLFWlibraryWayland::controlMask
xkb_mod_mask_t controlMask
Definition: wl_platform.h:278
_GLFWwindowWayland::monitors
_GLFWmonitor ** monitors
Definition: wl_platform.h:200
rightDecoration
@ rightDecoration
Definition: wl_platform.h:159
_GLFWlibraryWayland::context
struct xkb_context * context
Definition: wl_platform.h:270
VkBool32
uint32_t VkBool32
Definition: internal.h:123
_GLFWlibraryWayland::numLockMask
xkb_mod_mask_t numLockMask
Definition: wl_platform.h:283
_GLFWcursorWayland
Definition: wl_platform.h:347
_GLFWlibraryWayland::display
struct wl_display * display
Definition: wl_platform.h:227
_GLFWwindowWayland::hovered
GLFWbool hovered
Definition: wl_platform.h:179
_GLFWwindowWayland::height
int height
Definition: wl_platform.h:176
PFN_wl_cursor_theme_load
struct wl_cursor_theme *(* PFN_wl_cursor_theme_load)(const char *, int, struct wl_shm *)
Definition: wl_platform.h:93
_GLFWlibraryWayland::dataDeviceManager
struct wl_data_device_manager * dataDeviceManager
Definition: wl_platform.h:236
PFN_wl_egl_window_create
struct wl_egl_window *(* PFN_wl_egl_window_create)(struct wl_surface *, int, int)
Definition: wl_platform.h:102
_GLFWwindowWayland::maximized
GLFWbool maximized
Definition: wl_platform.h:178
_GLFWcursorWayland::buffer
struct wl_buffer * buffer
Definition: wl_platform.h:351
PFN_xkb_keymap_key_repeats
int(* PFN_xkb_keymap_key_repeats)(struct xkb_keymap *, xkb_keycode_t)
Definition: wl_platform.h:114
_GLFWwindowWayland::buffer
struct wl_buffer * buffer
Definition: wl_platform.h:216
_GLFWcursor
Definition: internal.h:447
_GLFWwindowWayland::callback
struct wl_callback * callback
Definition: wl_platform.h:184
_GLFWwindowWayland::monitorsCount
int monitorsCount
Definition: wl_platform.h:201
_GLFWwindowWayland::surface
struct wl_surface * surface
Definition: wl_platform.h:181
_GLFWmonitorWayland::scale
int scale
Definition: wl_platform.h:341
PFN_xkb_state_serialize_mods
xkb_mod_mask_t(* PFN_xkb_state_serialize_mods)(struct xkb_state *, enum xkb_state_component)
Definition: wl_platform.h:119
_GLFWwindowWayland::decorations
struct _GLFWwindowWayland::@19 decorations
_GLFWwindowWayland::shellSurface
struct wl_shell_surface * shellSurface
Definition: wl_platform.h:183
bottomDecoration
@ bottomDecoration
Definition: wl_platform.h:160
osmesa_context.h
_GLFWlibraryWayland::subcompositor
struct wl_subcompositor * subcompositor
Definition: wl_platform.h:230
wl_cursor::images
struct wl_cursor_image ** images
Definition: wl_platform.h:90
_GLFWwindowWayland::cursorPosY
double cursorPosY
Definition: wl_platform.h:193
_GLFWlibraryWayland::shm
struct wl_shm * shm
Definition: wl_platform.h:232
VkWaylandSurfaceCreateInfoKHR::sType
VkStructureType sType
Definition: wl_platform.h:38
_GLFWdecorationWayland::subsurface
struct wl_subsurface * subsurface
Definition: wl_platform.h:167
_GLFWwindowWayland
Definition: wl_platform.h:174
_GLFWlibraryWayland::keymap_key_repeats
PFN_xkb_keymap_key_repeats keymap_key_repeats
Definition: wl_platform.h:291
wl_cursor
Definition: wl_platform.h:88
_GLFWwindowWayland::top
_GLFWdecorationWayland top
Definition: wl_platform.h:217
_GLFWlibraryWayland::state_unref
PFN_xkb_state_unref state_unref
Definition: wl_platform.h:293
_GLFWwindowWayland::pointerLock
struct _GLFWwindowWayland::@18 pointerLock
_GLFWlibraryWayland::shiftMask
xkb_mod_mask_t shiftMask
Definition: wl_platform.h:280
_GLFWwindowWayland::focus
int focus
Definition: wl_platform.h:218
_GLFWlibraryWayland::keycodes
short int keycodes[256]
Definition: wl_platform.h:265
_GLFWcursorWayland
struct _GLFWcursorWayland _GLFWcursorWayland
_GLFWwindowWayland::bottom
_GLFWdecorationWayland bottom
Definition: wl_platform.h:217
VkInstance
void * VkInstance
Definition: internal.h:119
_GLFWwindowWayland::currentCursor
_GLFWcursor * currentCursor
Definition: wl_platform.h:192
wl_cursor_image
Definition: wl_platform.h:81
_GLFWlibraryWayland::cursorSurface
struct wl_surface * cursorSurface
Definition: wl_platform.h:252
VkWaylandSurfaceCreateInfoKHR::display
struct wl_display * display
Definition: wl_platform.h:41
_GLFWlibraryWayland::serial
uint32_t serial
Definition: wl_platform.h:254
_GLFWlibraryWayland::keyboardFocus
_GLFWwindow * keyboardFocus
Definition: wl_platform.h:310
_GLFWlibraryWayland::seat
struct wl_seat * seat
Definition: wl_platform.h:233
_GLFWlibraryWayland::theme_destroy
PFN_wl_cursor_theme_destroy theme_destroy
Definition: wl_platform.h:316
leftDecoration
@ leftDecoration
Definition: wl_platform.h:158
_GLFWlibraryWayland::window_destroy
PFN_wl_egl_window_destroy window_destroy
Definition: wl_platform.h:325
_GLFWwindowWayland::toplevel
struct xdg_toplevel * toplevel
Definition: wl_platform.h:188
_GLFWwindowWayland::justCreated
GLFWbool justCreated
Definition: wl_platform.h:212
_GLFWdecorationWayland
Definition: wl_platform.h:164
wl_cursor_image::hotspot_y
uint32_t hotspot_y
Definition: wl_platform.h:85
VkWaylandSurfaceCreateInfoKHR::flags
VkWaylandSurfaceCreateFlagsKHR flags
Definition: wl_platform.h:40
PFN_xkb_context_unref
void(* PFN_xkb_context_unref)(struct xkb_context *)
Definition: wl_platform.h:110
_GLFWlibraryWayland::state_new
PFN_xkb_state_new state_new
Definition: wl_platform.h:292
_GLFWlibraryWayland::dataSource
struct wl_data_source * dataSource
Definition: wl_platform.h:239
_GLFWlibraryWayland::shell
struct wl_shell * shell
Definition: wl_platform.h:231
_GLFWlibraryWayland::pointerConstraints
struct zwp_pointer_constraints_v1 * pointerConstraints
Definition: wl_platform.h:244
_GLFWlibraryWayland::clipboardSize
size_t clipboardSize
Definition: wl_platform.h:261
_GLFWcursorWayland::xhot
int xhot
Definition: wl_platform.h:353
_GLFWwindowWayland::visible
GLFWbool visible
Definition: wl_platform.h:177
_GLFWcursorWayland::cursorHiDPI
struct wl_cursor * cursorHiDPI
Definition: wl_platform.h:350
_GLFWwindowWayland::serverSide
GLFWbool serverSide
Definition: wl_platform.h:215
_GLFWlibraryWayland::relativePointerManager
struct zwp_relative_pointer_manager_v1 * relativePointerManager
Definition: wl_platform.h:243
_GLFWlibraryWayland::window_resize
PFN_wl_egl_window_resize window_resize
Definition: wl_platform.h:326
PFN_xkb_keymap_unref
void(* PFN_xkb_keymap_unref)(struct xkb_keymap *)
Definition: wl_platform.h:112
VkWaylandSurfaceCreateFlagsKHR
VkFlags VkWaylandSurfaceCreateFlagsKHR
Definition: wl_platform.h:34
_GLFWwindowWayland::cursorPosX
double cursorPosX
Definition: wl_platform.h:193
_GLFWwindowWayland::native
struct wl_egl_window * native
Definition: wl_platform.h:182
null_joystick.h
_GLFWlibraryWayland::cursorTheme
struct wl_cursor_theme * cursorTheme
Definition: wl_platform.h:250
PFN_wl_egl_window_destroy
void(* PFN_wl_egl_window_destroy)(struct wl_egl_window *)
Definition: wl_platform.h:103
VkWaylandSurfaceCreateInfoKHR::pNext
const void * pNext
Definition: wl_platform.h:39
GLFW_KEY_LAST
#define GLFW_KEY_LAST
Definition: glfw3.h:483
PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR
VkBool32(APIENTRY * PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice, uint32_t, struct wl_display *)
Definition: wl_platform.h:46
_GLFWlibraryWayland::viewporter
struct wp_viewporter * viewporter
Definition: wl_platform.h:242
_GLFWwindow
Definition: internal.h:366
_GLFWlibraryWayland::keyboardRepeatDelay
int32_t keyboardRepeatDelay
Definition: wl_platform.h:257
_GLFWlibraryWayland::pointer
struct wl_pointer * pointer
Definition: wl_platform.h:234
_GLFWcursorWayland::currentImage
int currentImage
Definition: wl_platform.h:354
mainWindow
@ mainWindow
Definition: wl_platform.h:156
_GLFWlibraryWayland::keyboardRepeatRate
int32_t keyboardRepeatRate
Definition: wl_platform.h:256
_GLFWlibraryWayland::compositor
struct wl_compositor * compositor
Definition: wl_platform.h:229
_GLFWmonitorWayland
Definition: wl_platform.h:333
void
typedef void(GLAD_API_PTR *GLDEBUGPROC)(GLenum source
_GLFWlibraryWayland::handle
void * handle
Definition: wl_platform.h:269
_GLFWwindowWayland::left
_GLFWdecorationWayland left
Definition: wl_platform.h:217
_GLFWlibraryWayland::keyboardLastKey
int keyboardLastKey
Definition: wl_platform.h:258
_GLFWlibraryWayland::cursorTimerfd
int cursorTimerfd
Definition: wl_platform.h:253
_GLFWlibraryWayland::clipboardSendString
char * clipboardSendString
Definition: wl_platform.h:262
_GLFWcursorWayland::cursor
struct wl_cursor * cursor
Definition: wl_platform.h:349
_GLFWlibraryWayland
struct _GLFWlibraryWayland _GLFWlibraryWayland
APIENTRY
#define APIENTRY
Definition: glfw3.h:106
_GLFWlibraryWayland::compositorVersion
int compositorVersion
Definition: wl_platform.h:247
xkb_unicode.h
_GLFWcursorWayland::width
int width
Definition: wl_platform.h:352
_GLFWwindowWayland::right
_GLFWdecorationWayland right
Definition: wl_platform.h:217
_GLFWlibraryWayland::pointerFocus
_GLFWwindow * pointerFocus
Definition: wl_platform.h:309
_GLFWlibraryWayland::cursorThemeHiDPI
struct wl_cursor_theme * cursorThemeHiDPI
Definition: wl_platform.h:251
_GLFWmonitorWayland::name
int name
Definition: wl_platform.h:336
_GLFWwindowWayland::scale
int scale
Definition: wl_platform.h:199
_GLFWlibraryWayland::keyboard
struct wl_keyboard * keyboard
Definition: wl_platform.h:235
_GLFWlibraryWayland::state_update_mask
PFN_xkb_state_update_mask state_update_mask
Definition: wl_platform.h:295
wl_cursor_image::hotspot_x
uint32_t hotspot_x
Definition: wl_platform.h:84
VkAllocationCallbacks
struct VkAllocationCallbacks VkAllocationCallbacks
Definition: internal.h:163
_GLFWlibraryWayland::context_new
PFN_xkb_context_new context_new
Definition: wl_platform.h:286
_GLFWdecorationSideWayland
_GLFWdecorationSideWayland
Definition: wl_platform.h:154
PFN_xkb_state_update_mask
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)
Definition: wl_platform.h:118
_GLFWlibraryWayland::image_get_buffer
PFN_wl_cursor_image_get_buffer image_get_buffer
Definition: wl_platform.h:318
_GLFWmonitorWayland
struct _GLFWmonitorWayland _GLFWmonitorWayland
VkFlags
uint32_t VkFlags
Definition: internal.h:122
_GLFWlibraryWayland::xkb
struct _GLFWlibraryWayland::@20 xkb
_GLFWlibraryWayland::dataOffer
struct wl_data_offer * dataOffer
Definition: wl_platform.h:238
_GLFWmonitorWayland::y
int y
Definition: wl_platform.h:340
_glfwAddOutputWayland
void _glfwAddOutputWayland(uint32_t name, uint32_t version)
Definition: wl_monitor.c:112
_GLFWmonitorWayland::x
int x
Definition: wl_platform.h:339
_GLFWlibraryWayland::cursor
struct _GLFWlibraryWayland::@21 cursor
_GLFWwindowWayland::transparent
GLFWbool transparent
Definition: wl_platform.h:180
_GLFWwindowWayland::lockedPointer
struct zwp_locked_pointer_v1 * lockedPointer
Definition: wl_platform.h:206
_GLFWwindowWayland::width
int width
Definition: wl_platform.h:176
_GLFWwindowWayland::xdg
struct _GLFWwindowWayland::@17 xdg
_GLFWlibraryWayland::idleInhibitManager
struct zwp_idle_inhibit_manager_v1 * idleInhibitManager
Definition: wl_platform.h:245
egl_context.h
_GLFWlibraryWayland::keymap_mod_get_index
PFN_xkb_keymap_mod_get_index keymap_mod_get_index
Definition: wl_platform.h:290
PFN_xkb_state_key_get_syms
int(* PFN_xkb_state_key_get_syms)(struct xkb_state *, xkb_keycode_t, const xkb_keysym_t **)
Definition: wl_platform.h:117
wl_cursor_image::delay
uint32_t delay
Definition: wl_platform.h:86
_GLFWwindowWayland::idleInhibitor
struct zwp_idle_inhibitor_v1 * idleInhibitor
Definition: wl_platform.h:209
wl_cursor::name
char * name
Definition: wl_platform.h:91
_GLFWlibraryWayland::keyboardLastScancode
int keyboardLastScancode
Definition: wl_platform.h:259
_GLFWlibraryWayland::theme_load
PFN_wl_cursor_theme_load theme_load
Definition: wl_platform.h:315
VkPhysicalDevice
void * VkPhysicalDevice
Definition: internal.h:120
_GLFWlibraryWayland::modifiers
unsigned int modifiers
Definition: wl_platform.h:284
_GLFWlibraryWayland::superMask
xkb_mod_mask_t superMask
Definition: wl_platform.h:281
_GLFWwindowWayland::relativePointer
struct zwp_relative_pointer_v1 * relativePointer
Definition: wl_platform.h:205
PFN_wl_cursor_theme_get_cursor
struct wl_cursor *(* PFN_wl_cursor_theme_get_cursor)(struct wl_cursor_theme *, const char *)
Definition: wl_platform.h:95
PFN_xkb_context_new
struct xkb_context *(* PFN_xkb_context_new)(enum xkb_context_flags)
Definition: wl_platform.h:109
posix_time.h
_GLFWdecorationWayland::viewport
struct wp_viewport * viewport
Definition: wl_platform.h:168
_GLFWlibraryWayland::timerfd
int timerfd
Definition: wl_platform.h:264
PFN_wl_egl_window_resize
void(* PFN_wl_egl_window_resize)(struct wl_egl_window *, int, int, int, int)
Definition: wl_platform.h:104
_GLFWlibraryWayland::context_unref
PFN_xkb_context_unref context_unref
Definition: wl_platform.h:287
_GLFWmonitorWayland::output
struct wl_output * output
Definition: wl_platform.h:335
_GLFWlibraryWayland::keymap_unref
PFN_xkb_keymap_unref keymap_unref
Definition: wl_platform.h:289
_GLFWlibraryWayland::wmBase
struct xdg_wm_base * wmBase
Definition: wl_platform.h:240
_GLFWlibraryWayland::altMask
xkb_mod_mask_t altMask
Definition: wl_platform.h:279
_GLFWlibraryWayland::clipboardSendSize
size_t clipboardSendSize
Definition: wl_platform.h:263
_GLFWmonitorWayland::currentMode
int currentMode
Definition: wl_platform.h:337
_GLFWwindowWayland
struct _GLFWwindowWayland _GLFWwindowWayland
_GLFWlibraryWayland::window_create
PFN_wl_egl_window_create window_create
Definition: wl_platform.h:324
_GLFWlibraryWayland::keymap
struct xkb_keymap * keymap
Definition: wl_platform.h:271
_GLFWlibraryWayland::registry
struct wl_registry * registry
Definition: wl_platform.h:228
_GLFWwindowWayland::title
char * title
Definition: wl_platform.h:195
_GLFWmonitor
Definition: internal.h:423
_GLFWdecorationWayland::surface
struct wl_surface * surface
Definition: wl_platform.h:166
_GLFWlibraryWayland::state_key_get_syms
PFN_xkb_state_key_get_syms state_key_get_syms
Definition: wl_platform.h:294
_GLFWlibraryWayland::clipboardString
char * clipboardString
Definition: wl_platform.h:260
_GLFWlibraryWayland
Definition: wl_platform.h:225
_GLFWwindowWayland::surface
struct xdg_surface * surface
Definition: wl_platform.h:187
wl_cursor::image_count
unsigned int image_count
Definition: wl_platform.h:89
VkResult
VkResult
Definition: internal.h:135
topDecoration
@ topDecoration
Definition: wl_platform.h:157
VkStructureType
VkStructureType
Definition: internal.h:125
wl_cursor_image::height
uint32_t height
Definition: wl_platform.h:83
_GLFWlibraryWayland::decorationManager
struct zxdg_decoration_manager_v1 * decorationManager
Definition: wl_platform.h:241
wl_cursor_image::width
uint32_t width
Definition: wl_platform.h:82
_GLFWlibraryWayland::dataDevice
struct wl_data_device * dataDevice
Definition: wl_platform.h:237
_GLFWlibraryWayland::egl
struct _GLFWlibraryWayland::@22 egl
GLFWbool
int GLFWbool
Definition: internal.h:62
PFN_wl_cursor_theme_destroy
void(* PFN_wl_cursor_theme_destroy)(struct wl_cursor_theme *)
Definition: wl_platform.h:94
_GLFWlibraryWayland::capsLockMask
xkb_mod_mask_t capsLockMask
Definition: wl_platform.h:282
PFN_xkb_keymap_mod_get_index
xkb_mod_index_t(* PFN_xkb_keymap_mod_get_index)(struct xkb_keymap *, const char *)
Definition: wl_platform.h:113
_GLFWcursorWayland::height
int height
Definition: wl_platform.h:352
PFN_vkCreateWaylandSurfaceKHR
VkResult(APIENTRY * PFN_vkCreateWaylandSurfaceKHR)(VkInstance, const VkWaylandSurfaceCreateInfoKHR *, const VkAllocationCallbacks *, VkSurfaceKHR *)
Definition: wl_platform.h:45
VkWaylandSurfaceCreateInfoKHR
struct VkWaylandSurfaceCreateInfoKHR VkWaylandSurfaceCreateInfoKHR
_GLFWlibraryWayland::seatVersion
int seatVersion
Definition: wl_platform.h:248
_GLFWlibraryWayland::state
struct xkb_state * state
Definition: wl_platform.h:272
_GLFWlibraryWayland::keymap_new_from_string
PFN_xkb_keymap_new_from_string keymap_new_from_string
Definition: wl_platform.h:288
_GLFWwindowWayland::monitorsSize
int monitorsSize
Definition: wl_platform.h:202
_GLFWlibraryWayland::scancodes
short int scancodes[GLFW_KEY_LAST+1]
Definition: wl_platform.h:266
PFN_xkb_keymap_new_from_string
struct xkb_keymap *(* PFN_xkb_keymap_new_from_string)(struct xkb_context *, const char *, enum xkb_keymap_format, enum xkb_keymap_compile_flags)
Definition: wl_platform.h:111
PFN_xkb_state_unref
void(* PFN_xkb_state_unref)(struct xkb_state *)
Definition: wl_platform.h:116
VkWaylandSurfaceCreateInfoKHR::surface
struct wl_surface * surface
Definition: wl_platform.h:42
_GLFWcursorWayland::yhot
int yhot
Definition: wl_platform.h:353
_GLFWwindowWayland::decoration
struct zxdg_toplevel_decoration_v1 * decoration
Definition: wl_platform.h:189


mvsim
Author(s):
autogenerated on Wed May 28 2025 02:13:08