glfw3.c 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/GLFW/CMakeLists.txt +368 -0
  2. package/GLFW/cocoa_init.m +694 -0
  3. package/GLFW/cocoa_joystick.h +49 -0
  4. package/GLFW/cocoa_joystick.m +485 -0
  5. package/GLFW/cocoa_monitor.m +643 -0
  6. package/GLFW/cocoa_platform.h +302 -0
  7. package/GLFW/cocoa_time.c +57 -0
  8. package/GLFW/cocoa_time.h +35 -0
  9. package/GLFW/cocoa_window.m +2072 -0
  10. package/GLFW/context.c +765 -0
  11. package/GLFW/egl_context.c +911 -0
  12. package/GLFW/glfw.rc.in +30 -0
  13. package/GLFW/glfw3.c +109 -0
  14. package/GLFW/glfw3.h +6564 -0
  15. package/GLFW/glfw3native.h +663 -0
  16. package/GLFW/glx_context.c +719 -0
  17. package/GLFW/init.c +528 -0
  18. package/GLFW/input.c +1505 -0
  19. package/GLFW/internal.h +1022 -0
  20. package/GLFW/linux_joystick.c +436 -0
  21. package/GLFW/linux_joystick.h +64 -0
  22. package/GLFW/mappings.h +1001 -0
  23. package/GLFW/mappings.h.in +82 -0
  24. package/GLFW/monitor.c +548 -0
  25. package/GLFW/nsgl_context.m +384 -0
  26. package/GLFW/null_init.c +264 -0
  27. package/GLFW/null_joystick.c +56 -0
  28. package/GLFW/null_joystick.h +32 -0
  29. package/GLFW/null_monitor.c +160 -0
  30. package/GLFW/null_platform.h +271 -0
  31. package/GLFW/null_window.c +719 -0
  32. package/GLFW/osmesa_context.c +383 -0
  33. package/GLFW/platform.c +214 -0
  34. package/GLFW/platform.h +212 -0
  35. package/GLFW/posix_module.c +53 -0
  36. package/GLFW/posix_poll.c +83 -0
  37. package/GLFW/posix_poll.h +30 -0
  38. package/GLFW/posix_thread.c +107 -0
  39. package/GLFW/posix_thread.h +49 -0
  40. package/GLFW/posix_time.c +65 -0
  41. package/GLFW/posix_time.h +41 -0
  42. package/GLFW/vulkan.c +328 -0
  43. package/GLFW/wgl_context.c +798 -0
  44. package/GLFW/win32_init.c +731 -0
  45. package/GLFW/win32_joystick.c +767 -0
  46. package/GLFW/win32_joystick.h +51 -0
  47. package/GLFW/win32_module.c +51 -0
  48. package/GLFW/win32_monitor.c +569 -0
  49. package/GLFW/win32_platform.h +631 -0
  50. package/GLFW/win32_thread.c +100 -0
  51. package/GLFW/win32_thread.h +53 -0
  52. package/GLFW/win32_time.c +54 -0
  53. package/GLFW/win32_time.h +43 -0
  54. package/GLFW/win32_window.c +2592 -0
  55. package/GLFW/window.c +1172 -0
  56. package/GLFW/wl_init.c +1003 -0
  57. package/GLFW/wl_monitor.c +274 -0
  58. package/GLFW/wl_platform.h +691 -0
  59. package/GLFW/wl_window.c +3308 -0
  60. package/GLFW/x11_init.c +1656 -0
  61. package/GLFW/x11_monitor.c +641 -0
  62. package/GLFW/x11_platform.h +1004 -0
  63. package/GLFW/x11_window.c +3357 -0
  64. package/GLFW/xkb_unicode.c +943 -0
  65. package/GLFW/xkb_unicode.h +30 -0
  66. package/LICENSE +22 -0
  67. package/README.md +236 -0
  68. package/package.json +32 -0
@@ -0,0 +1,1004 @@
1
+ //========================================================================
2
+ // GLFW 3.4 X11 - www.glfw.org
3
+ //------------------------------------------------------------------------
4
+ // Copyright (c) 2002-2006 Marcus Geelnard
5
+ // Copyright (c) 2006-2019 Camilla Löwy <elmindreda@glfw.org>
6
+ //
7
+ // This software is provided 'as-is', without any express or implied
8
+ // warranty. In no event will the authors be held liable for any damages
9
+ // arising from the use of this software.
10
+ //
11
+ // Permission is granted to anyone to use this software for any purpose,
12
+ // including commercial applications, and to alter it and redistribute it
13
+ // freely, subject to the following restrictions:
14
+ //
15
+ // 1. The origin of this software must not be misrepresented; you must not
16
+ // claim that you wrote the original software. If you use this software
17
+ // in a product, an acknowledgment in the product documentation would
18
+ // be appreciated but is not required.
19
+ //
20
+ // 2. Altered source versions must be plainly marked as such, and must not
21
+ // be misrepresented as being the original software.
22
+ //
23
+ // 3. This notice may not be removed or altered from any source
24
+ // distribution.
25
+ //
26
+ //========================================================================
27
+
28
+ #include <unistd.h>
29
+ #include <signal.h>
30
+ #include <stdint.h>
31
+
32
+ #include <X11/Xlib.h>
33
+ #include <X11/keysym.h>
34
+ #include <X11/Xatom.h>
35
+ #include <X11/Xresource.h>
36
+ #include <X11/Xcursor/Xcursor.h>
37
+
38
+ // The XRandR extension provides mode setting and gamma control
39
+ #include <X11/extensions/Xrandr.h>
40
+
41
+ // The Xkb extension provides improved keyboard support
42
+ #include <X11/XKBlib.h>
43
+
44
+ // The Xinerama extension provides legacy monitor indices
45
+ #include <X11/extensions/Xinerama.h>
46
+
47
+ // The XInput extension provides raw mouse motion input
48
+ #include <X11/extensions/XInput2.h>
49
+
50
+ // The Shape extension provides custom window shapes
51
+ #include <X11/extensions/shape.h>
52
+
53
+ #define GLX_VENDOR 1
54
+ #define GLX_RGBA_BIT 0x00000001
55
+ #define GLX_WINDOW_BIT 0x00000001
56
+ #define GLX_DRAWABLE_TYPE 0x8010
57
+ #define GLX_RENDER_TYPE 0x8011
58
+ #define GLX_RGBA_TYPE 0x8014
59
+ #define GLX_DOUBLEBUFFER 5
60
+ #define GLX_STEREO 6
61
+ #define GLX_AUX_BUFFERS 7
62
+ #define GLX_RED_SIZE 8
63
+ #define GLX_GREEN_SIZE 9
64
+ #define GLX_BLUE_SIZE 10
65
+ #define GLX_ALPHA_SIZE 11
66
+ #define GLX_DEPTH_SIZE 12
67
+ #define GLX_STENCIL_SIZE 13
68
+ #define GLX_ACCUM_RED_SIZE 14
69
+ #define GLX_ACCUM_GREEN_SIZE 15
70
+ #define GLX_ACCUM_BLUE_SIZE 16
71
+ #define GLX_ACCUM_ALPHA_SIZE 17
72
+ #define GLX_SAMPLES 0x186a1
73
+ #define GLX_VISUAL_ID 0x800b
74
+
75
+ #define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20b2
76
+ #define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001
77
+ #define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
78
+ #define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
79
+ #define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126
80
+ #define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
81
+ #define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
82
+ #define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
83
+ #define GLX_CONTEXT_FLAGS_ARB 0x2094
84
+ #define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
85
+ #define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
86
+ #define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252
87
+ #define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
88
+ #define GLX_NO_RESET_NOTIFICATION_ARB 0x8261
89
+ #define GLX_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097
90
+ #define GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0
91
+ #define GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098
92
+ #define GLX_CONTEXT_OPENGL_NO_ERROR_ARB 0x31b3
93
+
94
+ typedef XID GLXWindow;
95
+ typedef XID GLXDrawable;
96
+ typedef struct __GLXFBConfig* GLXFBConfig;
97
+ typedef struct __GLXcontext* GLXContext;
98
+ typedef void (*__GLXextproc)(void);
99
+
100
+ typedef XClassHint* (* PFN_XAllocClassHint)(void);
101
+ typedef XSizeHints* (* PFN_XAllocSizeHints)(void);
102
+ typedef XWMHints* (* PFN_XAllocWMHints)(void);
103
+ typedef int (* PFN_XChangeProperty)(Display*,Window,Atom,Atom,int,int,const unsigned char*,int);
104
+ typedef int (* PFN_XChangeWindowAttributes)(Display*,Window,unsigned long,XSetWindowAttributes*);
105
+ typedef Bool (* PFN_XCheckIfEvent)(Display*,XEvent*,Bool(*)(Display*,XEvent*,XPointer),XPointer);
106
+ typedef Bool (* PFN_XCheckTypedWindowEvent)(Display*,Window,int,XEvent*);
107
+ typedef int (* PFN_XCloseDisplay)(Display*);
108
+ typedef Status (* PFN_XCloseIM)(XIM);
109
+ typedef int (* PFN_XConvertSelection)(Display*,Atom,Atom,Atom,Window,Time);
110
+ typedef Colormap (* PFN_XCreateColormap)(Display*,Window,Visual*,int);
111
+ typedef Cursor (* PFN_XCreateFontCursor)(Display*,unsigned int);
112
+ typedef XIC (* PFN_XCreateIC)(XIM,...);
113
+ typedef Region (* PFN_XCreateRegion)(void);
114
+ typedef Window (* PFN_XCreateWindow)(Display*,Window,int,int,unsigned int,unsigned int,unsigned int,int,unsigned int,Visual*,unsigned long,XSetWindowAttributes*);
115
+ typedef int (* PFN_XDefineCursor)(Display*,Window,Cursor);
116
+ typedef int (* PFN_XDeleteContext)(Display*,XID,XContext);
117
+ typedef int (* PFN_XDeleteProperty)(Display*,Window,Atom);
118
+ typedef void (* PFN_XDestroyIC)(XIC);
119
+ typedef int (* PFN_XDestroyRegion)(Region);
120
+ typedef int (* PFN_XDestroyWindow)(Display*,Window);
121
+ typedef int (* PFN_XDisplayKeycodes)(Display*,int*,int*);
122
+ typedef int (* PFN_XEventsQueued)(Display*,int);
123
+ typedef Bool (* PFN_XFilterEvent)(XEvent*,Window);
124
+ typedef int (* PFN_XFindContext)(Display*,XID,XContext,XPointer*);
125
+ typedef int (* PFN_XFlush)(Display*);
126
+ typedef int (* PFN_XFree)(void*);
127
+ typedef int (* PFN_XFreeColormap)(Display*,Colormap);
128
+ typedef int (* PFN_XFreeCursor)(Display*,Cursor);
129
+ typedef void (* PFN_XFreeEventData)(Display*,XGenericEventCookie*);
130
+ typedef int (* PFN_XGetErrorText)(Display*,int,char*,int);
131
+ typedef Bool (* PFN_XGetEventData)(Display*,XGenericEventCookie*);
132
+ typedef char* (* PFN_XGetICValues)(XIC,...);
133
+ typedef char* (* PFN_XGetIMValues)(XIM,...);
134
+ typedef int (* PFN_XGetInputFocus)(Display*,Window*,int*);
135
+ typedef KeySym* (* PFN_XGetKeyboardMapping)(Display*,KeyCode,int,int*);
136
+ typedef int (* PFN_XGetScreenSaver)(Display*,int*,int*,int*,int*);
137
+ typedef Window (* PFN_XGetSelectionOwner)(Display*,Atom);
138
+ typedef XVisualInfo* (* PFN_XGetVisualInfo)(Display*,long,XVisualInfo*,int*);
139
+ typedef Status (* PFN_XGetWMNormalHints)(Display*,Window,XSizeHints*,long*);
140
+ typedef Status (* PFN_XGetWindowAttributes)(Display*,Window,XWindowAttributes*);
141
+ typedef int (* PFN_XGetWindowProperty)(Display*,Window,Atom,long,long,Bool,Atom,Atom*,int*,unsigned long*,unsigned long*,unsigned char**);
142
+ typedef int (* PFN_XGrabPointer)(Display*,Window,Bool,unsigned int,int,int,Window,Cursor,Time);
143
+ typedef Status (* PFN_XIconifyWindow)(Display*,Window,int);
144
+ typedef Status (* PFN_XInitThreads)(void);
145
+ typedef Atom (* PFN_XInternAtom)(Display*,const char*,Bool);
146
+ typedef int (* PFN_XLookupString)(XKeyEvent*,char*,int,KeySym*,XComposeStatus*);
147
+ typedef int (* PFN_XMapRaised)(Display*,Window);
148
+ typedef int (* PFN_XMapWindow)(Display*,Window);
149
+ typedef int (* PFN_XMoveResizeWindow)(Display*,Window,int,int,unsigned int,unsigned int);
150
+ typedef int (* PFN_XMoveWindow)(Display*,Window,int,int);
151
+ typedef int (* PFN_XNextEvent)(Display*,XEvent*);
152
+ typedef Display* (* PFN_XOpenDisplay)(const char*);
153
+ typedef XIM (* PFN_XOpenIM)(Display*,XrmDatabase*,char*,char*);
154
+ typedef int (* PFN_XPeekEvent)(Display*,XEvent*);
155
+ typedef int (* PFN_XPending)(Display*);
156
+ typedef Bool (* PFN_XQueryExtension)(Display*,const char*,int*,int*,int*);
157
+ typedef Bool (* PFN_XQueryPointer)(Display*,Window,Window*,Window*,int*,int*,int*,int*,unsigned int*);
158
+ typedef int (* PFN_XRaiseWindow)(Display*,Window);
159
+ typedef Bool (* PFN_XRegisterIMInstantiateCallback)(Display*,void*,char*,char*,XIDProc,XPointer);
160
+ typedef int (* PFN_XResizeWindow)(Display*,Window,unsigned int,unsigned int);
161
+ typedef char* (* PFN_XResourceManagerString)(Display*);
162
+ typedef int (* PFN_XSaveContext)(Display*,XID,XContext,const char*);
163
+ typedef int (* PFN_XSelectInput)(Display*,Window,long);
164
+ typedef Status (* PFN_XSendEvent)(Display*,Window,Bool,long,XEvent*);
165
+ typedef int (* PFN_XSetClassHint)(Display*,Window,XClassHint*);
166
+ typedef XErrorHandler (* PFN_XSetErrorHandler)(XErrorHandler);
167
+ typedef void (* PFN_XSetICFocus)(XIC);
168
+ typedef char* (* PFN_XSetIMValues)(XIM,...);
169
+ typedef int (* PFN_XSetInputFocus)(Display*,Window,int,Time);
170
+ typedef char* (* PFN_XSetLocaleModifiers)(const char*);
171
+ typedef int (* PFN_XSetScreenSaver)(Display*,int,int,int,int);
172
+ typedef int (* PFN_XSetSelectionOwner)(Display*,Atom,Window,Time);
173
+ typedef int (* PFN_XSetWMHints)(Display*,Window,XWMHints*);
174
+ typedef void (* PFN_XSetWMNormalHints)(Display*,Window,XSizeHints*);
175
+ typedef Status (* PFN_XSetWMProtocols)(Display*,Window,Atom*,int);
176
+ typedef Bool (* PFN_XSupportsLocale)(void);
177
+ typedef int (* PFN_XSync)(Display*,Bool);
178
+ typedef Bool (* PFN_XTranslateCoordinates)(Display*,Window,Window,int,int,int*,int*,Window*);
179
+ typedef int (* PFN_XUndefineCursor)(Display*,Window);
180
+ typedef int (* PFN_XUngrabPointer)(Display*,Time);
181
+ typedef int (* PFN_XUnmapWindow)(Display*,Window);
182
+ typedef void (* PFN_XUnsetICFocus)(XIC);
183
+ typedef VisualID (* PFN_XVisualIDFromVisual)(Visual*);
184
+ typedef int (* PFN_XWarpPointer)(Display*,Window,Window,int,int,unsigned int,unsigned int,int,int);
185
+ typedef void (* PFN_XkbFreeKeyboard)(XkbDescPtr,unsigned int,Bool);
186
+ typedef void (* PFN_XkbFreeNames)(XkbDescPtr,unsigned int,Bool);
187
+ typedef XkbDescPtr (* PFN_XkbGetMap)(Display*,unsigned int,unsigned int);
188
+ typedef Status (* PFN_XkbGetNames)(Display*,unsigned int,XkbDescPtr);
189
+ typedef Status (* PFN_XkbGetState)(Display*,unsigned int,XkbStatePtr);
190
+ typedef KeySym (* PFN_XkbKeycodeToKeysym)(Display*,KeyCode,int,int);
191
+ typedef Bool (* PFN_XkbQueryExtension)(Display*,int*,int*,int*,int*,int*);
192
+ typedef Bool (* PFN_XkbSelectEventDetails)(Display*,unsigned int,unsigned int,unsigned long,unsigned long);
193
+ typedef Bool (* PFN_XkbSetDetectableAutoRepeat)(Display*,Bool,Bool*);
194
+ typedef void (* PFN_XrmDestroyDatabase)(XrmDatabase);
195
+ typedef Bool (* PFN_XrmGetResource)(XrmDatabase,const char*,const char*,char**,XrmValue*);
196
+ typedef XrmDatabase (* PFN_XrmGetStringDatabase)(const char*);
197
+ typedef void (* PFN_XrmInitialize)(void);
198
+ typedef XrmQuark (* PFN_XrmUniqueQuark)(void);
199
+ typedef Bool (* PFN_XUnregisterIMInstantiateCallback)(Display*,void*,char*,char*,XIDProc,XPointer);
200
+ typedef int (* PFN_Xutf8LookupString)(XIC,XKeyPressedEvent*,char*,int,KeySym*,Status*);
201
+ typedef void (* PFN_Xutf8SetWMProperties)(Display*,Window,const char*,const char*,char**,int,XSizeHints*,XWMHints*,XClassHint*);
202
+ #define XAllocClassHint _glfw.x11.xlib.AllocClassHint
203
+ #define XAllocSizeHints _glfw.x11.xlib.AllocSizeHints
204
+ #define XAllocWMHints _glfw.x11.xlib.AllocWMHints
205
+ #define XChangeProperty _glfw.x11.xlib.ChangeProperty
206
+ #define XChangeWindowAttributes _glfw.x11.xlib.ChangeWindowAttributes
207
+ #define XCheckIfEvent _glfw.x11.xlib.CheckIfEvent
208
+ #define XCheckTypedWindowEvent _glfw.x11.xlib.CheckTypedWindowEvent
209
+ #define XCloseDisplay _glfw.x11.xlib.CloseDisplay
210
+ #define XCloseIM _glfw.x11.xlib.CloseIM
211
+ #define XConvertSelection _glfw.x11.xlib.ConvertSelection
212
+ #define XCreateColormap _glfw.x11.xlib.CreateColormap
213
+ #define XCreateFontCursor _glfw.x11.xlib.CreateFontCursor
214
+ #define XCreateIC _glfw.x11.xlib.CreateIC
215
+ #define XCreateRegion _glfw.x11.xlib.CreateRegion
216
+ #define XCreateWindow _glfw.x11.xlib.CreateWindow
217
+ #define XDefineCursor _glfw.x11.xlib.DefineCursor
218
+ #define XDeleteContext _glfw.x11.xlib.DeleteContext
219
+ #define XDeleteProperty _glfw.x11.xlib.DeleteProperty
220
+ #define XDestroyIC _glfw.x11.xlib.DestroyIC
221
+ #define XDestroyRegion _glfw.x11.xlib.DestroyRegion
222
+ #define XDestroyWindow _glfw.x11.xlib.DestroyWindow
223
+ #define XDisplayKeycodes _glfw.x11.xlib.DisplayKeycodes
224
+ #define XEventsQueued _glfw.x11.xlib.EventsQueued
225
+ #define XFilterEvent _glfw.x11.xlib.FilterEvent
226
+ #define XFindContext _glfw.x11.xlib.FindContext
227
+ #define XFlush _glfw.x11.xlib.Flush
228
+ #define XFree _glfw.x11.xlib.Free
229
+ #define XFreeColormap _glfw.x11.xlib.FreeColormap
230
+ #define XFreeCursor _glfw.x11.xlib.FreeCursor
231
+ #define XFreeEventData _glfw.x11.xlib.FreeEventData
232
+ #define XGetErrorText _glfw.x11.xlib.GetErrorText
233
+ #define XGetEventData _glfw.x11.xlib.GetEventData
234
+ #define XGetICValues _glfw.x11.xlib.GetICValues
235
+ #define XGetIMValues _glfw.x11.xlib.GetIMValues
236
+ #define XGetInputFocus _glfw.x11.xlib.GetInputFocus
237
+ #define XGetKeyboardMapping _glfw.x11.xlib.GetKeyboardMapping
238
+ #define XGetScreenSaver _glfw.x11.xlib.GetScreenSaver
239
+ #define XGetSelectionOwner _glfw.x11.xlib.GetSelectionOwner
240
+ #define XGetVisualInfo _glfw.x11.xlib.GetVisualInfo
241
+ #define XGetWMNormalHints _glfw.x11.xlib.GetWMNormalHints
242
+ #define XGetWindowAttributes _glfw.x11.xlib.GetWindowAttributes
243
+ #define XGetWindowProperty _glfw.x11.xlib.GetWindowProperty
244
+ #define XGrabPointer _glfw.x11.xlib.GrabPointer
245
+ #define XIconifyWindow _glfw.x11.xlib.IconifyWindow
246
+ #define XInternAtom _glfw.x11.xlib.InternAtom
247
+ #define XLookupString _glfw.x11.xlib.LookupString
248
+ #define XMapRaised _glfw.x11.xlib.MapRaised
249
+ #define XMapWindow _glfw.x11.xlib.MapWindow
250
+ #define XMoveResizeWindow _glfw.x11.xlib.MoveResizeWindow
251
+ #define XMoveWindow _glfw.x11.xlib.MoveWindow
252
+ #define XNextEvent _glfw.x11.xlib.NextEvent
253
+ #define XOpenIM _glfw.x11.xlib.OpenIM
254
+ #define XPeekEvent _glfw.x11.xlib.PeekEvent
255
+ #define XPending _glfw.x11.xlib.Pending
256
+ #define XQueryExtension _glfw.x11.xlib.QueryExtension
257
+ #define XQueryPointer _glfw.x11.xlib.QueryPointer
258
+ #define XRaiseWindow _glfw.x11.xlib.RaiseWindow
259
+ #define XRegisterIMInstantiateCallback _glfw.x11.xlib.RegisterIMInstantiateCallback
260
+ #define XResizeWindow _glfw.x11.xlib.ResizeWindow
261
+ #define XResourceManagerString _glfw.x11.xlib.ResourceManagerString
262
+ #define XSaveContext _glfw.x11.xlib.SaveContext
263
+ #define XSelectInput _glfw.x11.xlib.SelectInput
264
+ #define XSendEvent _glfw.x11.xlib.SendEvent
265
+ #define XSetClassHint _glfw.x11.xlib.SetClassHint
266
+ #define XSetErrorHandler _glfw.x11.xlib.SetErrorHandler
267
+ #define XSetICFocus _glfw.x11.xlib.SetICFocus
268
+ #define XSetIMValues _glfw.x11.xlib.SetIMValues
269
+ #define XSetInputFocus _glfw.x11.xlib.SetInputFocus
270
+ #define XSetLocaleModifiers _glfw.x11.xlib.SetLocaleModifiers
271
+ #define XSetScreenSaver _glfw.x11.xlib.SetScreenSaver
272
+ #define XSetSelectionOwner _glfw.x11.xlib.SetSelectionOwner
273
+ #define XSetWMHints _glfw.x11.xlib.SetWMHints
274
+ #define XSetWMNormalHints _glfw.x11.xlib.SetWMNormalHints
275
+ #define XSetWMProtocols _glfw.x11.xlib.SetWMProtocols
276
+ #define XSupportsLocale _glfw.x11.xlib.SupportsLocale
277
+ #define XSync _glfw.x11.xlib.Sync
278
+ #define XTranslateCoordinates _glfw.x11.xlib.TranslateCoordinates
279
+ #define XUndefineCursor _glfw.x11.xlib.UndefineCursor
280
+ #define XUngrabPointer _glfw.x11.xlib.UngrabPointer
281
+ #define XUnmapWindow _glfw.x11.xlib.UnmapWindow
282
+ #define XUnsetICFocus _glfw.x11.xlib.UnsetICFocus
283
+ #define XVisualIDFromVisual _glfw.x11.xlib.VisualIDFromVisual
284
+ #define XWarpPointer _glfw.x11.xlib.WarpPointer
285
+ #define XkbFreeKeyboard _glfw.x11.xkb.FreeKeyboard
286
+ #define XkbFreeNames _glfw.x11.xkb.FreeNames
287
+ #define XkbGetMap _glfw.x11.xkb.GetMap
288
+ #define XkbGetNames _glfw.x11.xkb.GetNames
289
+ #define XkbGetState _glfw.x11.xkb.GetState
290
+ #define XkbKeycodeToKeysym _glfw.x11.xkb.KeycodeToKeysym
291
+ #define XkbQueryExtension _glfw.x11.xkb.QueryExtension
292
+ #define XkbSelectEventDetails _glfw.x11.xkb.SelectEventDetails
293
+ #define XkbSetDetectableAutoRepeat _glfw.x11.xkb.SetDetectableAutoRepeat
294
+ #define XrmDestroyDatabase _glfw.x11.xrm.DestroyDatabase
295
+ #define XrmGetResource _glfw.x11.xrm.GetResource
296
+ #define XrmGetStringDatabase _glfw.x11.xrm.GetStringDatabase
297
+ #define XrmUniqueQuark _glfw.x11.xrm.UniqueQuark
298
+ #define XUnregisterIMInstantiateCallback _glfw.x11.xlib.UnregisterIMInstantiateCallback
299
+ #define Xutf8LookupString _glfw.x11.xlib.utf8LookupString
300
+ #define Xutf8SetWMProperties _glfw.x11.xlib.utf8SetWMProperties
301
+
302
+ typedef XRRCrtcGamma* (* PFN_XRRAllocGamma)(int);
303
+ typedef void (* PFN_XRRFreeCrtcInfo)(XRRCrtcInfo*);
304
+ typedef void (* PFN_XRRFreeGamma)(XRRCrtcGamma*);
305
+ typedef void (* PFN_XRRFreeOutputInfo)(XRROutputInfo*);
306
+ typedef void (* PFN_XRRFreeScreenResources)(XRRScreenResources*);
307
+ typedef XRRCrtcGamma* (* PFN_XRRGetCrtcGamma)(Display*,RRCrtc);
308
+ typedef int (* PFN_XRRGetCrtcGammaSize)(Display*,RRCrtc);
309
+ typedef XRRCrtcInfo* (* PFN_XRRGetCrtcInfo) (Display*,XRRScreenResources*,RRCrtc);
310
+ typedef XRROutputInfo* (* PFN_XRRGetOutputInfo)(Display*,XRRScreenResources*,RROutput);
311
+ typedef RROutput (* PFN_XRRGetOutputPrimary)(Display*,Window);
312
+ typedef XRRScreenResources* (* PFN_XRRGetScreenResourcesCurrent)(Display*,Window);
313
+ typedef Bool (* PFN_XRRQueryExtension)(Display*,int*,int*);
314
+ typedef Status (* PFN_XRRQueryVersion)(Display*,int*,int*);
315
+ typedef void (* PFN_XRRSelectInput)(Display*,Window,int);
316
+ typedef Status (* PFN_XRRSetCrtcConfig)(Display*,XRRScreenResources*,RRCrtc,Time,int,int,RRMode,Rotation,RROutput*,int);
317
+ typedef void (* PFN_XRRSetCrtcGamma)(Display*,RRCrtc,XRRCrtcGamma*);
318
+ typedef int (* PFN_XRRUpdateConfiguration)(XEvent*);
319
+ #define XRRAllocGamma _glfw.x11.randr.AllocGamma
320
+ #define XRRFreeCrtcInfo _glfw.x11.randr.FreeCrtcInfo
321
+ #define XRRFreeGamma _glfw.x11.randr.FreeGamma
322
+ #define XRRFreeOutputInfo _glfw.x11.randr.FreeOutputInfo
323
+ #define XRRFreeScreenResources _glfw.x11.randr.FreeScreenResources
324
+ #define XRRGetCrtcGamma _glfw.x11.randr.GetCrtcGamma
325
+ #define XRRGetCrtcGammaSize _glfw.x11.randr.GetCrtcGammaSize
326
+ #define XRRGetCrtcInfo _glfw.x11.randr.GetCrtcInfo
327
+ #define XRRGetOutputInfo _glfw.x11.randr.GetOutputInfo
328
+ #define XRRGetOutputPrimary _glfw.x11.randr.GetOutputPrimary
329
+ #define XRRGetScreenResourcesCurrent _glfw.x11.randr.GetScreenResourcesCurrent
330
+ #define XRRQueryExtension _glfw.x11.randr.QueryExtension
331
+ #define XRRQueryVersion _glfw.x11.randr.QueryVersion
332
+ #define XRRSelectInput _glfw.x11.randr.SelectInput
333
+ #define XRRSetCrtcConfig _glfw.x11.randr.SetCrtcConfig
334
+ #define XRRSetCrtcGamma _glfw.x11.randr.SetCrtcGamma
335
+ #define XRRUpdateConfiguration _glfw.x11.randr.UpdateConfiguration
336
+
337
+ typedef XcursorImage* (* PFN_XcursorImageCreate)(int,int);
338
+ typedef void (* PFN_XcursorImageDestroy)(XcursorImage*);
339
+ typedef Cursor (* PFN_XcursorImageLoadCursor)(Display*,const XcursorImage*);
340
+ typedef char* (* PFN_XcursorGetTheme)(Display*);
341
+ typedef int (* PFN_XcursorGetDefaultSize)(Display*);
342
+ typedef XcursorImage* (* PFN_XcursorLibraryLoadImage)(const char*,const char*,int);
343
+ #define XcursorImageCreate _glfw.x11.xcursor.ImageCreate
344
+ #define XcursorImageDestroy _glfw.x11.xcursor.ImageDestroy
345
+ #define XcursorImageLoadCursor _glfw.x11.xcursor.ImageLoadCursor
346
+ #define XcursorGetTheme _glfw.x11.xcursor.GetTheme
347
+ #define XcursorGetDefaultSize _glfw.x11.xcursor.GetDefaultSize
348
+ #define XcursorLibraryLoadImage _glfw.x11.xcursor.LibraryLoadImage
349
+
350
+ typedef Bool (* PFN_XineramaIsActive)(Display*);
351
+ typedef Bool (* PFN_XineramaQueryExtension)(Display*,int*,int*);
352
+ typedef XineramaScreenInfo* (* PFN_XineramaQueryScreens)(Display*,int*);
353
+ #define XineramaIsActive _glfw.x11.xinerama.IsActive
354
+ #define XineramaQueryExtension _glfw.x11.xinerama.QueryExtension
355
+ #define XineramaQueryScreens _glfw.x11.xinerama.QueryScreens
356
+
357
+ typedef XID xcb_window_t;
358
+ typedef XID xcb_visualid_t;
359
+ typedef struct xcb_connection_t xcb_connection_t;
360
+ typedef xcb_connection_t* (* PFN_XGetXCBConnection)(Display*);
361
+ #define XGetXCBConnection _glfw.x11.x11xcb.GetXCBConnection
362
+
363
+ typedef Bool (* PFN_XF86VidModeQueryExtension)(Display*,int*,int*);
364
+ typedef Bool (* PFN_XF86VidModeGetGammaRamp)(Display*,int,int,unsigned short*,unsigned short*,unsigned short*);
365
+ typedef Bool (* PFN_XF86VidModeSetGammaRamp)(Display*,int,int,unsigned short*,unsigned short*,unsigned short*);
366
+ typedef Bool (* PFN_XF86VidModeGetGammaRampSize)(Display*,int,int*);
367
+ #define XF86VidModeQueryExtension _glfw.x11.vidmode.QueryExtension
368
+ #define XF86VidModeGetGammaRamp _glfw.x11.vidmode.GetGammaRamp
369
+ #define XF86VidModeSetGammaRamp _glfw.x11.vidmode.SetGammaRamp
370
+ #define XF86VidModeGetGammaRampSize _glfw.x11.vidmode.GetGammaRampSize
371
+
372
+ typedef Status (* PFN_XIQueryVersion)(Display*,int*,int*);
373
+ typedef int (* PFN_XISelectEvents)(Display*,Window,XIEventMask*,int);
374
+ #define XIQueryVersion _glfw.x11.xi.QueryVersion
375
+ #define XISelectEvents _glfw.x11.xi.SelectEvents
376
+
377
+ typedef Bool (* PFN_XRenderQueryExtension)(Display*,int*,int*);
378
+ typedef Status (* PFN_XRenderQueryVersion)(Display*dpy,int*,int*);
379
+ typedef XRenderPictFormat* (* PFN_XRenderFindVisualFormat)(Display*,Visual const*);
380
+ #define XRenderQueryExtension _glfw.x11.xrender.QueryExtension
381
+ #define XRenderQueryVersion _glfw.x11.xrender.QueryVersion
382
+ #define XRenderFindVisualFormat _glfw.x11.xrender.FindVisualFormat
383
+
384
+ typedef Bool (* PFN_XShapeQueryExtension)(Display*,int*,int*);
385
+ typedef Status (* PFN_XShapeQueryVersion)(Display*dpy,int*,int*);
386
+ typedef void (* PFN_XShapeCombineRegion)(Display*,Window,int,int,int,Region,int);
387
+ typedef void (* PFN_XShapeCombineMask)(Display*,Window,int,int,int,Pixmap,int);
388
+
389
+ #define XShapeQueryExtension _glfw.x11.xshape.QueryExtension
390
+ #define XShapeQueryVersion _glfw.x11.xshape.QueryVersion
391
+ #define XShapeCombineRegion _glfw.x11.xshape.ShapeCombineRegion
392
+ #define XShapeCombineMask _glfw.x11.xshape.ShapeCombineMask
393
+
394
+ typedef int (*PFNGLXGETFBCONFIGATTRIBPROC)(Display*,GLXFBConfig,int,int*);
395
+ typedef const char* (*PFNGLXGETCLIENTSTRINGPROC)(Display*,int);
396
+ typedef Bool (*PFNGLXQUERYEXTENSIONPROC)(Display*,int*,int*);
397
+ typedef Bool (*PFNGLXQUERYVERSIONPROC)(Display*,int*,int*);
398
+ typedef void (*PFNGLXDESTROYCONTEXTPROC)(Display*,GLXContext);
399
+ typedef Bool (*PFNGLXMAKECURRENTPROC)(Display*,GLXDrawable,GLXContext);
400
+ typedef void (*PFNGLXSWAPBUFFERSPROC)(Display*,GLXDrawable);
401
+ typedef const char* (*PFNGLXQUERYEXTENSIONSSTRINGPROC)(Display*,int);
402
+ typedef GLXFBConfig* (*PFNGLXGETFBCONFIGSPROC)(Display*,int,int*);
403
+ typedef GLXContext (*PFNGLXCREATENEWCONTEXTPROC)(Display*,GLXFBConfig,int,GLXContext,Bool);
404
+ typedef __GLXextproc (* PFNGLXGETPROCADDRESSPROC)(const GLubyte *procName);
405
+ typedef void (*PFNGLXSWAPINTERVALEXTPROC)(Display*,GLXDrawable,int);
406
+ typedef XVisualInfo* (*PFNGLXGETVISUALFROMFBCONFIGPROC)(Display*,GLXFBConfig);
407
+ typedef GLXWindow (*PFNGLXCREATEWINDOWPROC)(Display*,GLXFBConfig,Window,const int*);
408
+ typedef void (*PFNGLXDESTROYWINDOWPROC)(Display*,GLXWindow);
409
+
410
+ typedef int (*PFNGLXSWAPINTERVALMESAPROC)(int);
411
+ typedef int (*PFNGLXSWAPINTERVALSGIPROC)(int);
412
+ typedef GLXContext (*PFNGLXCREATECONTEXTATTRIBSARBPROC)(Display*,GLXFBConfig,GLXContext,Bool,const int*);
413
+
414
+ // libGL.so function pointer typedefs
415
+ #define glXGetFBConfigs _glfw.glx.GetFBConfigs
416
+ #define glXGetFBConfigAttrib _glfw.glx.GetFBConfigAttrib
417
+ #define glXGetClientString _glfw.glx.GetClientString
418
+ #define glXQueryExtension _glfw.glx.QueryExtension
419
+ #define glXQueryVersion _glfw.glx.QueryVersion
420
+ #define glXDestroyContext _glfw.glx.DestroyContext
421
+ #define glXMakeCurrent _glfw.glx.MakeCurrent
422
+ #define glXSwapBuffers _glfw.glx.SwapBuffers
423
+ #define glXQueryExtensionsString _glfw.glx.QueryExtensionsString
424
+ #define glXCreateNewContext _glfw.glx.CreateNewContext
425
+ #define glXGetVisualFromFBConfig _glfw.glx.GetVisualFromFBConfig
426
+ #define glXCreateWindow _glfw.glx.CreateWindow
427
+ #define glXDestroyWindow _glfw.glx.DestroyWindow
428
+
429
+ typedef VkFlags VkXlibSurfaceCreateFlagsKHR;
430
+ typedef VkFlags VkXcbSurfaceCreateFlagsKHR;
431
+
432
+ typedef struct VkXlibSurfaceCreateInfoKHR
433
+ {
434
+ VkStructureType sType;
435
+ const void* pNext;
436
+ VkXlibSurfaceCreateFlagsKHR flags;
437
+ Display* dpy;
438
+ Window window;
439
+ } VkXlibSurfaceCreateInfoKHR;
440
+
441
+ typedef struct VkXcbSurfaceCreateInfoKHR
442
+ {
443
+ VkStructureType sType;
444
+ const void* pNext;
445
+ VkXcbSurfaceCreateFlagsKHR flags;
446
+ xcb_connection_t* connection;
447
+ xcb_window_t window;
448
+ } VkXcbSurfaceCreateInfoKHR;
449
+
450
+ typedef VkResult (APIENTRY *PFN_vkCreateXlibSurfaceKHR)(VkInstance,const VkXlibSurfaceCreateInfoKHR*,const VkAllocationCallbacks*,VkSurfaceKHR*);
451
+ typedef VkBool32 (APIENTRY *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice,uint32_t,Display*,VisualID);
452
+ typedef VkResult (APIENTRY *PFN_vkCreateXcbSurfaceKHR)(VkInstance,const VkXcbSurfaceCreateInfoKHR*,const VkAllocationCallbacks*,VkSurfaceKHR*);
453
+ typedef VkBool32 (APIENTRY *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice,uint32_t,xcb_connection_t*,xcb_visualid_t);
454
+
455
+ #include "xkb_unicode.h"
456
+ #include "posix_poll.h"
457
+
458
+ #define GLFW_X11_WINDOW_STATE _GLFWwindowX11 x11;
459
+ #define GLFW_X11_LIBRARY_WINDOW_STATE _GLFWlibraryX11 x11;
460
+ #define GLFW_X11_MONITOR_STATE _GLFWmonitorX11 x11;
461
+ #define GLFW_X11_CURSOR_STATE _GLFWcursorX11 x11;
462
+
463
+ #define GLFW_GLX_CONTEXT_STATE _GLFWcontextGLX glx;
464
+ #define GLFW_GLX_LIBRARY_CONTEXT_STATE _GLFWlibraryGLX glx;
465
+
466
+
467
+ // GLX-specific per-context data
468
+ //
469
+ typedef struct _GLFWcontextGLX
470
+ {
471
+ GLXContext handle;
472
+ GLXWindow window;
473
+ } _GLFWcontextGLX;
474
+
475
+ // GLX-specific global data
476
+ //
477
+ typedef struct _GLFWlibraryGLX
478
+ {
479
+ int major, minor;
480
+ int eventBase;
481
+ int errorBase;
482
+
483
+ void* handle;
484
+
485
+ // GLX 1.3 functions
486
+ PFNGLXGETFBCONFIGSPROC GetFBConfigs;
487
+ PFNGLXGETFBCONFIGATTRIBPROC GetFBConfigAttrib;
488
+ PFNGLXGETCLIENTSTRINGPROC GetClientString;
489
+ PFNGLXQUERYEXTENSIONPROC QueryExtension;
490
+ PFNGLXQUERYVERSIONPROC QueryVersion;
491
+ PFNGLXDESTROYCONTEXTPROC DestroyContext;
492
+ PFNGLXMAKECURRENTPROC MakeCurrent;
493
+ PFNGLXSWAPBUFFERSPROC SwapBuffers;
494
+ PFNGLXQUERYEXTENSIONSSTRINGPROC QueryExtensionsString;
495
+ PFNGLXCREATENEWCONTEXTPROC CreateNewContext;
496
+ PFNGLXGETVISUALFROMFBCONFIGPROC GetVisualFromFBConfig;
497
+ PFNGLXCREATEWINDOWPROC CreateWindow;
498
+ PFNGLXDESTROYWINDOWPROC DestroyWindow;
499
+
500
+ // GLX 1.4 and extension functions
501
+ PFNGLXGETPROCADDRESSPROC GetProcAddress;
502
+ PFNGLXGETPROCADDRESSPROC GetProcAddressARB;
503
+ PFNGLXSWAPINTERVALSGIPROC SwapIntervalSGI;
504
+ PFNGLXSWAPINTERVALEXTPROC SwapIntervalEXT;
505
+ PFNGLXSWAPINTERVALMESAPROC SwapIntervalMESA;
506
+ PFNGLXCREATECONTEXTATTRIBSARBPROC CreateContextAttribsARB;
507
+ GLFWbool SGI_swap_control;
508
+ GLFWbool EXT_swap_control;
509
+ GLFWbool MESA_swap_control;
510
+ GLFWbool ARB_multisample;
511
+ GLFWbool ARB_framebuffer_sRGB;
512
+ GLFWbool EXT_framebuffer_sRGB;
513
+ GLFWbool ARB_create_context;
514
+ GLFWbool ARB_create_context_profile;
515
+ GLFWbool ARB_create_context_robustness;
516
+ GLFWbool EXT_create_context_es2_profile;
517
+ GLFWbool ARB_create_context_no_error;
518
+ GLFWbool ARB_context_flush_control;
519
+ } _GLFWlibraryGLX;
520
+
521
+ // X11-specific per-window data
522
+ //
523
+ typedef struct _GLFWwindowX11
524
+ {
525
+ Colormap colormap;
526
+ Window handle;
527
+ Window parent;
528
+ XIC ic;
529
+
530
+ GLFWbool overrideRedirect;
531
+ GLFWbool iconified;
532
+ GLFWbool maximized;
533
+
534
+ // Whether the visual supports framebuffer transparency
535
+ GLFWbool transparent;
536
+
537
+ // Cached position and size used to filter out duplicate events
538
+ int width, height;
539
+ int xpos, ypos;
540
+
541
+ // The last received cursor position, regardless of source
542
+ int lastCursorPosX, lastCursorPosY;
543
+ // The last position the cursor was warped to by GLFW
544
+ int warpCursorPosX, warpCursorPosY;
545
+
546
+ // The time of the last KeyPress event per keycode, for discarding
547
+ // duplicate key events generated for some keys by ibus
548
+ Time keyPressTimes[256];
549
+ } _GLFWwindowX11;
550
+
551
+ // X11-specific global data
552
+ //
553
+ typedef struct _GLFWlibraryX11
554
+ {
555
+ Display* display;
556
+ int screen;
557
+ Window root;
558
+
559
+ // System content scale
560
+ float contentScaleX, contentScaleY;
561
+ // Helper window for IPC
562
+ Window helperWindowHandle;
563
+ // Invisible cursor for hidden cursor mode
564
+ Cursor hiddenCursorHandle;
565
+ // Context for mapping window XIDs to _GLFWwindow pointers
566
+ XContext context;
567
+ // XIM input method
568
+ XIM im;
569
+ // The previous X error handler, to be restored later
570
+ XErrorHandler errorHandler;
571
+ // Most recent error code received by X error handler
572
+ int errorCode;
573
+ // Primary selection string (while the primary selection is owned)
574
+ char* primarySelectionString;
575
+ // Clipboard string (while the selection is owned)
576
+ char* clipboardString;
577
+ // Key name string
578
+ char keynames[GLFW_KEY_LAST + 1][5];
579
+ // X11 keycode to GLFW key LUT
580
+ short int keycodes[256];
581
+ // GLFW key to X11 keycode LUT
582
+ short int scancodes[GLFW_KEY_LAST + 1];
583
+ // Where to place the cursor when re-enabled
584
+ double restoreCursorPosX, restoreCursorPosY;
585
+ // The window whose disabled cursor mode is active
586
+ _GLFWwindow* disabledCursorWindow;
587
+ int emptyEventPipe[2];
588
+
589
+ // Window manager atoms
590
+ Atom NET_SUPPORTED;
591
+ Atom NET_SUPPORTING_WM_CHECK;
592
+ Atom WM_PROTOCOLS;
593
+ Atom WM_STATE;
594
+ Atom WM_DELETE_WINDOW;
595
+ Atom NET_WM_NAME;
596
+ Atom NET_WM_ICON_NAME;
597
+ Atom NET_WM_ICON;
598
+ Atom NET_WM_PID;
599
+ Atom NET_WM_PING;
600
+ Atom NET_WM_WINDOW_TYPE;
601
+ Atom NET_WM_WINDOW_TYPE_NORMAL;
602
+ Atom NET_WM_STATE;
603
+ Atom NET_WM_STATE_ABOVE;
604
+ Atom NET_WM_STATE_FULLSCREEN;
605
+ Atom NET_WM_STATE_MAXIMIZED_VERT;
606
+ Atom NET_WM_STATE_MAXIMIZED_HORZ;
607
+ Atom NET_WM_STATE_DEMANDS_ATTENTION;
608
+ Atom NET_WM_BYPASS_COMPOSITOR;
609
+ Atom NET_WM_FULLSCREEN_MONITORS;
610
+ Atom NET_WM_WINDOW_OPACITY;
611
+ Atom NET_WM_CM_Sx;
612
+ Atom NET_WORKAREA;
613
+ Atom NET_CURRENT_DESKTOP;
614
+ Atom NET_ACTIVE_WINDOW;
615
+ Atom NET_FRAME_EXTENTS;
616
+ Atom NET_REQUEST_FRAME_EXTENTS;
617
+ Atom MOTIF_WM_HINTS;
618
+
619
+ // Xdnd (drag and drop) atoms
620
+ Atom XdndAware;
621
+ Atom XdndEnter;
622
+ Atom XdndPosition;
623
+ Atom XdndStatus;
624
+ Atom XdndActionCopy;
625
+ Atom XdndDrop;
626
+ Atom XdndFinished;
627
+ Atom XdndSelection;
628
+ Atom XdndTypeList;
629
+ Atom text_uri_list;
630
+
631
+ // Selection (clipboard) atoms
632
+ Atom TARGETS;
633
+ Atom MULTIPLE;
634
+ Atom INCR;
635
+ Atom CLIPBOARD;
636
+ Atom PRIMARY;
637
+ Atom CLIPBOARD_MANAGER;
638
+ Atom SAVE_TARGETS;
639
+ Atom NULL_;
640
+ Atom UTF8_STRING;
641
+ Atom COMPOUND_STRING;
642
+ Atom ATOM_PAIR;
643
+ Atom GLFW_SELECTION;
644
+
645
+ struct {
646
+ void* handle;
647
+ GLFWbool utf8;
648
+ PFN_XAllocClassHint AllocClassHint;
649
+ PFN_XAllocSizeHints AllocSizeHints;
650
+ PFN_XAllocWMHints AllocWMHints;
651
+ PFN_XChangeProperty ChangeProperty;
652
+ PFN_XChangeWindowAttributes ChangeWindowAttributes;
653
+ PFN_XCheckIfEvent CheckIfEvent;
654
+ PFN_XCheckTypedWindowEvent CheckTypedWindowEvent;
655
+ PFN_XCloseDisplay CloseDisplay;
656
+ PFN_XCloseIM CloseIM;
657
+ PFN_XConvertSelection ConvertSelection;
658
+ PFN_XCreateColormap CreateColormap;
659
+ PFN_XCreateFontCursor CreateFontCursor;
660
+ PFN_XCreateIC CreateIC;
661
+ PFN_XCreateRegion CreateRegion;
662
+ PFN_XCreateWindow CreateWindow;
663
+ PFN_XDefineCursor DefineCursor;
664
+ PFN_XDeleteContext DeleteContext;
665
+ PFN_XDeleteProperty DeleteProperty;
666
+ PFN_XDestroyIC DestroyIC;
667
+ PFN_XDestroyRegion DestroyRegion;
668
+ PFN_XDestroyWindow DestroyWindow;
669
+ PFN_XDisplayKeycodes DisplayKeycodes;
670
+ PFN_XEventsQueued EventsQueued;
671
+ PFN_XFilterEvent FilterEvent;
672
+ PFN_XFindContext FindContext;
673
+ PFN_XFlush Flush;
674
+ PFN_XFree Free;
675
+ PFN_XFreeColormap FreeColormap;
676
+ PFN_XFreeCursor FreeCursor;
677
+ PFN_XFreeEventData FreeEventData;
678
+ PFN_XGetErrorText GetErrorText;
679
+ PFN_XGetEventData GetEventData;
680
+ PFN_XGetICValues GetICValues;
681
+ PFN_XGetIMValues GetIMValues;
682
+ PFN_XGetInputFocus GetInputFocus;
683
+ PFN_XGetKeyboardMapping GetKeyboardMapping;
684
+ PFN_XGetScreenSaver GetScreenSaver;
685
+ PFN_XGetSelectionOwner GetSelectionOwner;
686
+ PFN_XGetVisualInfo GetVisualInfo;
687
+ PFN_XGetWMNormalHints GetWMNormalHints;
688
+ PFN_XGetWindowAttributes GetWindowAttributes;
689
+ PFN_XGetWindowProperty GetWindowProperty;
690
+ PFN_XGrabPointer GrabPointer;
691
+ PFN_XIconifyWindow IconifyWindow;
692
+ PFN_XInternAtom InternAtom;
693
+ PFN_XLookupString LookupString;
694
+ PFN_XMapRaised MapRaised;
695
+ PFN_XMapWindow MapWindow;
696
+ PFN_XMoveResizeWindow MoveResizeWindow;
697
+ PFN_XMoveWindow MoveWindow;
698
+ PFN_XNextEvent NextEvent;
699
+ PFN_XOpenIM OpenIM;
700
+ PFN_XPeekEvent PeekEvent;
701
+ PFN_XPending Pending;
702
+ PFN_XQueryExtension QueryExtension;
703
+ PFN_XQueryPointer QueryPointer;
704
+ PFN_XRaiseWindow RaiseWindow;
705
+ PFN_XRegisterIMInstantiateCallback RegisterIMInstantiateCallback;
706
+ PFN_XResizeWindow ResizeWindow;
707
+ PFN_XResourceManagerString ResourceManagerString;
708
+ PFN_XSaveContext SaveContext;
709
+ PFN_XSelectInput SelectInput;
710
+ PFN_XSendEvent SendEvent;
711
+ PFN_XSetClassHint SetClassHint;
712
+ PFN_XSetErrorHandler SetErrorHandler;
713
+ PFN_XSetICFocus SetICFocus;
714
+ PFN_XSetIMValues SetIMValues;
715
+ PFN_XSetInputFocus SetInputFocus;
716
+ PFN_XSetLocaleModifiers SetLocaleModifiers;
717
+ PFN_XSetScreenSaver SetScreenSaver;
718
+ PFN_XSetSelectionOwner SetSelectionOwner;
719
+ PFN_XSetWMHints SetWMHints;
720
+ PFN_XSetWMNormalHints SetWMNormalHints;
721
+ PFN_XSetWMProtocols SetWMProtocols;
722
+ PFN_XSupportsLocale SupportsLocale;
723
+ PFN_XSync Sync;
724
+ PFN_XTranslateCoordinates TranslateCoordinates;
725
+ PFN_XUndefineCursor UndefineCursor;
726
+ PFN_XUngrabPointer UngrabPointer;
727
+ PFN_XUnmapWindow UnmapWindow;
728
+ PFN_XUnsetICFocus UnsetICFocus;
729
+ PFN_XVisualIDFromVisual VisualIDFromVisual;
730
+ PFN_XWarpPointer WarpPointer;
731
+ PFN_XUnregisterIMInstantiateCallback UnregisterIMInstantiateCallback;
732
+ PFN_Xutf8LookupString utf8LookupString;
733
+ PFN_Xutf8SetWMProperties utf8SetWMProperties;
734
+ } xlib;
735
+
736
+ struct {
737
+ PFN_XrmDestroyDatabase DestroyDatabase;
738
+ PFN_XrmGetResource GetResource;
739
+ PFN_XrmGetStringDatabase GetStringDatabase;
740
+ PFN_XrmUniqueQuark UniqueQuark;
741
+ } xrm;
742
+
743
+ struct {
744
+ GLFWbool available;
745
+ void* handle;
746
+ int eventBase;
747
+ int errorBase;
748
+ int major;
749
+ int minor;
750
+ GLFWbool gammaBroken;
751
+ GLFWbool monitorBroken;
752
+ PFN_XRRAllocGamma AllocGamma;
753
+ PFN_XRRFreeCrtcInfo FreeCrtcInfo;
754
+ PFN_XRRFreeGamma FreeGamma;
755
+ PFN_XRRFreeOutputInfo FreeOutputInfo;
756
+ PFN_XRRFreeScreenResources FreeScreenResources;
757
+ PFN_XRRGetCrtcGamma GetCrtcGamma;
758
+ PFN_XRRGetCrtcGammaSize GetCrtcGammaSize;
759
+ PFN_XRRGetCrtcInfo GetCrtcInfo;
760
+ PFN_XRRGetOutputInfo GetOutputInfo;
761
+ PFN_XRRGetOutputPrimary GetOutputPrimary;
762
+ PFN_XRRGetScreenResourcesCurrent GetScreenResourcesCurrent;
763
+ PFN_XRRQueryExtension QueryExtension;
764
+ PFN_XRRQueryVersion QueryVersion;
765
+ PFN_XRRSelectInput SelectInput;
766
+ PFN_XRRSetCrtcConfig SetCrtcConfig;
767
+ PFN_XRRSetCrtcGamma SetCrtcGamma;
768
+ PFN_XRRUpdateConfiguration UpdateConfiguration;
769
+ } randr;
770
+
771
+ struct {
772
+ GLFWbool available;
773
+ GLFWbool detectable;
774
+ int majorOpcode;
775
+ int eventBase;
776
+ int errorBase;
777
+ int major;
778
+ int minor;
779
+ unsigned int group;
780
+ PFN_XkbFreeKeyboard FreeKeyboard;
781
+ PFN_XkbFreeNames FreeNames;
782
+ PFN_XkbGetMap GetMap;
783
+ PFN_XkbGetNames GetNames;
784
+ PFN_XkbGetState GetState;
785
+ PFN_XkbKeycodeToKeysym KeycodeToKeysym;
786
+ PFN_XkbQueryExtension QueryExtension;
787
+ PFN_XkbSelectEventDetails SelectEventDetails;
788
+ PFN_XkbSetDetectableAutoRepeat SetDetectableAutoRepeat;
789
+ } xkb;
790
+
791
+ struct {
792
+ int count;
793
+ int timeout;
794
+ int interval;
795
+ int blanking;
796
+ int exposure;
797
+ } saver;
798
+
799
+ struct {
800
+ int version;
801
+ Window source;
802
+ Atom format;
803
+ } xdnd;
804
+
805
+ struct {
806
+ void* handle;
807
+ PFN_XcursorImageCreate ImageCreate;
808
+ PFN_XcursorImageDestroy ImageDestroy;
809
+ PFN_XcursorImageLoadCursor ImageLoadCursor;
810
+ PFN_XcursorGetTheme GetTheme;
811
+ PFN_XcursorGetDefaultSize GetDefaultSize;
812
+ PFN_XcursorLibraryLoadImage LibraryLoadImage;
813
+ } xcursor;
814
+
815
+ struct {
816
+ GLFWbool available;
817
+ void* handle;
818
+ int major;
819
+ int minor;
820
+ PFN_XineramaIsActive IsActive;
821
+ PFN_XineramaQueryExtension QueryExtension;
822
+ PFN_XineramaQueryScreens QueryScreens;
823
+ } xinerama;
824
+
825
+ struct {
826
+ void* handle;
827
+ PFN_XGetXCBConnection GetXCBConnection;
828
+ } x11xcb;
829
+
830
+ struct {
831
+ GLFWbool available;
832
+ void* handle;
833
+ int eventBase;
834
+ int errorBase;
835
+ PFN_XF86VidModeQueryExtension QueryExtension;
836
+ PFN_XF86VidModeGetGammaRamp GetGammaRamp;
837
+ PFN_XF86VidModeSetGammaRamp SetGammaRamp;
838
+ PFN_XF86VidModeGetGammaRampSize GetGammaRampSize;
839
+ } vidmode;
840
+
841
+ struct {
842
+ GLFWbool available;
843
+ void* handle;
844
+ int majorOpcode;
845
+ int eventBase;
846
+ int errorBase;
847
+ int major;
848
+ int minor;
849
+ PFN_XIQueryVersion QueryVersion;
850
+ PFN_XISelectEvents SelectEvents;
851
+ } xi;
852
+
853
+ struct {
854
+ GLFWbool available;
855
+ void* handle;
856
+ int major;
857
+ int minor;
858
+ int eventBase;
859
+ int errorBase;
860
+ PFN_XRenderQueryExtension QueryExtension;
861
+ PFN_XRenderQueryVersion QueryVersion;
862
+ PFN_XRenderFindVisualFormat FindVisualFormat;
863
+ } xrender;
864
+
865
+ struct {
866
+ GLFWbool available;
867
+ void* handle;
868
+ int major;
869
+ int minor;
870
+ int eventBase;
871
+ int errorBase;
872
+ PFN_XShapeQueryExtension QueryExtension;
873
+ PFN_XShapeCombineRegion ShapeCombineRegion;
874
+ PFN_XShapeQueryVersion QueryVersion;
875
+ PFN_XShapeCombineMask ShapeCombineMask;
876
+ } xshape;
877
+ } _GLFWlibraryX11;
878
+
879
+ // X11-specific per-monitor data
880
+ //
881
+ typedef struct _GLFWmonitorX11
882
+ {
883
+ RROutput output;
884
+ RRCrtc crtc;
885
+ RRMode oldMode;
886
+
887
+ // Index of corresponding Xinerama screen,
888
+ // for EWMH full screen window placement
889
+ int index;
890
+ } _GLFWmonitorX11;
891
+
892
+ // X11-specific per-cursor data
893
+ //
894
+ typedef struct _GLFWcursorX11
895
+ {
896
+ Cursor handle;
897
+ } _GLFWcursorX11;
898
+
899
+
900
+ GLFWbool _glfwConnectX11(int platformID, _GLFWplatform* platform);
901
+ int _glfwInitX11(void);
902
+ void _glfwTerminateX11(void);
903
+
904
+ GLFWbool _glfwCreateWindowX11(_GLFWwindow* window, const _GLFWwndconfig* wndconfig, const _GLFWctxconfig* ctxconfig, const _GLFWfbconfig* fbconfig);
905
+ void _glfwDestroyWindowX11(_GLFWwindow* window);
906
+ void _glfwSetWindowTitleX11(_GLFWwindow* window, const char* title);
907
+ void _glfwSetWindowIconX11(_GLFWwindow* window, int count, const GLFWimage* images);
908
+ void _glfwGetWindowPosX11(_GLFWwindow* window, int* xpos, int* ypos);
909
+ void _glfwSetWindowPosX11(_GLFWwindow* window, int xpos, int ypos);
910
+ void _glfwGetWindowSizeX11(_GLFWwindow* window, int* width, int* height);
911
+ void _glfwSetWindowSizeX11(_GLFWwindow* window, int width, int height);
912
+ void _glfwSetWindowSizeLimitsX11(_GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
913
+ void _glfwSetWindowAspectRatioX11(_GLFWwindow* window, int numer, int denom);
914
+ void _glfwGetFramebufferSizeX11(_GLFWwindow* window, int* width, int* height);
915
+ void _glfwGetWindowFrameSizeX11(_GLFWwindow* window, int* left, int* top, int* right, int* bottom);
916
+ void _glfwGetWindowContentScaleX11(_GLFWwindow* window, float* xscale, float* yscale);
917
+ void _glfwIconifyWindowX11(_GLFWwindow* window);
918
+ void _glfwRestoreWindowX11(_GLFWwindow* window);
919
+ void _glfwMaximizeWindowX11(_GLFWwindow* window);
920
+ void _glfwShowWindowX11(_GLFWwindow* window);
921
+ void _glfwHideWindowX11(_GLFWwindow* window);
922
+ void _glfwRequestWindowAttentionX11(_GLFWwindow* window);
923
+ void _glfwFocusWindowX11(_GLFWwindow* window);
924
+ void _glfwSetWindowMonitorX11(_GLFWwindow* window, _GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
925
+ GLFWbool _glfwWindowFocusedX11(_GLFWwindow* window);
926
+ GLFWbool _glfwWindowIconifiedX11(_GLFWwindow* window);
927
+ GLFWbool _glfwWindowVisibleX11(_GLFWwindow* window);
928
+ GLFWbool _glfwWindowMaximizedX11(_GLFWwindow* window);
929
+ GLFWbool _glfwWindowHoveredX11(_GLFWwindow* window);
930
+ GLFWbool _glfwFramebufferTransparentX11(_GLFWwindow* window);
931
+ void _glfwSetWindowResizableX11(_GLFWwindow* window, GLFWbool enabled);
932
+ void _glfwSetWindowDecoratedX11(_GLFWwindow* window, GLFWbool enabled);
933
+ void _glfwSetWindowFloatingX11(_GLFWwindow* window, GLFWbool enabled);
934
+ float _glfwGetWindowOpacityX11(_GLFWwindow* window);
935
+ void _glfwSetWindowOpacityX11(_GLFWwindow* window, float opacity);
936
+ void _glfwSetWindowMousePassthroughX11(_GLFWwindow* window, GLFWbool enabled);
937
+
938
+ void _glfwSetRawMouseMotionX11(_GLFWwindow *window, GLFWbool enabled);
939
+ GLFWbool _glfwRawMouseMotionSupportedX11(void);
940
+
941
+ void _glfwPollEventsX11(void);
942
+ void _glfwWaitEventsX11(void);
943
+ void _glfwWaitEventsTimeoutX11(double timeout);
944
+ void _glfwPostEmptyEventX11(void);
945
+
946
+ void _glfwGetCursorPosX11(_GLFWwindow* window, double* xpos, double* ypos);
947
+ void _glfwSetCursorPosX11(_GLFWwindow* window, double xpos, double ypos);
948
+ void _glfwSetCursorModeX11(_GLFWwindow* window, int mode);
949
+ const char* _glfwGetScancodeNameX11(int scancode);
950
+ int _glfwGetKeyScancodeX11(int key);
951
+ GLFWbool _glfwCreateCursorX11(_GLFWcursor* cursor, const GLFWimage* image, int xhot, int yhot);
952
+ GLFWbool _glfwCreateStandardCursorX11(_GLFWcursor* cursor, int shape);
953
+ void _glfwDestroyCursorX11(_GLFWcursor* cursor);
954
+ void _glfwSetCursorX11(_GLFWwindow* window, _GLFWcursor* cursor);
955
+ void _glfwSetClipboardStringX11(const char* string);
956
+ const char* _glfwGetClipboardStringX11(void);
957
+
958
+ EGLenum _glfwGetEGLPlatformX11(EGLint** attribs);
959
+ EGLNativeDisplayType _glfwGetEGLNativeDisplayX11(void);
960
+ EGLNativeWindowType _glfwGetEGLNativeWindowX11(_GLFWwindow* window);
961
+
962
+ void _glfwGetRequiredInstanceExtensionsX11(char** extensions);
963
+ GLFWbool _glfwGetPhysicalDevicePresentationSupportX11(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily);
964
+ VkResult _glfwCreateWindowSurfaceX11(VkInstance instance, _GLFWwindow* window, const VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);
965
+
966
+ void _glfwFreeMonitorX11(_GLFWmonitor* monitor);
967
+ void _glfwGetMonitorPosX11(_GLFWmonitor* monitor, int* xpos, int* ypos);
968
+ void _glfwGetMonitorContentScaleX11(_GLFWmonitor* monitor, float* xscale, float* yscale);
969
+ void _glfwGetMonitorWorkareaX11(_GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
970
+ GLFWvidmode* _glfwGetVideoModesX11(_GLFWmonitor* monitor, int* count);
971
+ GLFWbool _glfwGetVideoModeX11(_GLFWmonitor* monitor, GLFWvidmode* mode);
972
+ GLFWbool _glfwGetGammaRampX11(_GLFWmonitor* monitor, GLFWgammaramp* ramp);
973
+ void _glfwSetGammaRampX11(_GLFWmonitor* monitor, const GLFWgammaramp* ramp);
974
+
975
+ void _glfwPollMonitorsX11(void);
976
+ void _glfwSetVideoModeX11(_GLFWmonitor* monitor, const GLFWvidmode* desired);
977
+ void _glfwRestoreVideoModeX11(_GLFWmonitor* monitor);
978
+
979
+ Cursor _glfwCreateNativeCursorX11(const GLFWimage* image, int xhot, int yhot);
980
+
981
+ unsigned long _glfwGetWindowPropertyX11(Window window,
982
+ Atom property,
983
+ Atom type,
984
+ unsigned char** value);
985
+ GLFWbool _glfwIsVisualTransparentX11(Visual* visual);
986
+
987
+ void _glfwGrabErrorHandlerX11(void);
988
+ void _glfwReleaseErrorHandlerX11(void);
989
+ void _glfwInputErrorX11(int error, const char* message);
990
+
991
+ void _glfwPushSelectionToManagerX11(void);
992
+ void _glfwCreateInputContextX11(_GLFWwindow* window);
993
+
994
+ GLFWbool _glfwInitGLX(void);
995
+ void _glfwTerminateGLX(void);
996
+ GLFWbool _glfwCreateContextGLX(_GLFWwindow* window,
997
+ const _GLFWctxconfig* ctxconfig,
998
+ const _GLFWfbconfig* fbconfig);
999
+ void _glfwDestroyContextGLX(_GLFWwindow* window);
1000
+ GLFWbool _glfwChooseVisualGLX(const _GLFWwndconfig* wndconfig,
1001
+ const _GLFWctxconfig* ctxconfig,
1002
+ const _GLFWfbconfig* fbconfig,
1003
+ Visual** visual, int* depth);
1004
+