github.com/Konstantin8105/c4go@v0.0.0-20240505174241-768bb1c65a51/tests/raylib/external/glfw/README.md (about) 1 # GLFW 2 3 [](https://github.com/glfw/glfw/actions) 4 [](https://ci.appveyor.com/project/elmindreda/glfw) 5 [](https://scan.coverity.com/projects/glfw-glfw) 6 7 ## Introduction 8 9 GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan 10 application development. It provides a simple, platform-independent API for 11 creating windows, contexts and surfaces, reading input, handling events, etc. 12 13 GLFW natively supports Windows, macOS and Linux and other Unix-like systems. On 14 Linux both X11 and Wayland are supported. 15 16 GLFW is licensed under the [zlib/libpng 17 license](https://www.glfw.org/license.html). 18 19 You can [download](https://www.glfw.org/download.html) the latest stable release 20 as source or Windows binaries, or fetch the `latest` branch from GitHub. Each 21 release starting with 3.0 also has a corresponding [annotated 22 tag](https://github.com/glfw/glfw/releases) with source and binary archives. 23 24 The [documentation](https://www.glfw.org/docs/latest/) is available online and is 25 included in all source and binary archives. See the [release 26 notes](https://www.glfw.org/docs/latest/news.html) for new features, caveats and 27 deprecations in the latest release. For more details see the [version 28 history](https://www.glfw.org/changelog.html). 29 30 The `master` branch is the stable integration branch and _should_ always compile 31 and run on all supported platforms, although details of newly added features may 32 change until they have been included in a release. New features and many bug 33 fixes live in [other branches](https://github.com/glfw/glfw/branches/all) until 34 they are stable enough to merge. 35 36 If you are new to GLFW, you may find the 37 [tutorial](https://www.glfw.org/docs/latest/quick.html) for GLFW 3 useful. If 38 you have used GLFW 2 in the past, there is a [transition 39 guide](https://www.glfw.org/docs/latest/moving.html) for moving to the GLFW 40 3 API. 41 42 GLFW exists because of the contributions of [many people](CONTRIBUTORS.md) 43 around the world, whether by reporting bugs, providing community support, adding 44 features, reviewing or testing code, debugging, proofreading docs, suggesting 45 features or fixing bugs. 46 47 48 ## Compiling GLFW 49 50 GLFW itself requires only the headers and libraries for your OS and window 51 system. It does not need the headers for any context creation API (WGL, GLX, 52 EGL, NSGL, OSMesa) or rendering API (OpenGL, OpenGL ES, Vulkan) to enable 53 support for them. 54 55 GLFW supports compilation on Windows with Visual C++ 2010 and later, MinGW and 56 MinGW-w64, on macOS with Clang and on Linux and other Unix-like systems with GCC 57 and Clang. It will likely compile in other environments as well, but this is 58 not regularly tested. 59 60 There are [pre-compiled Windows binaries](https://www.glfw.org/download.html) 61 available for all supported compilers. 62 63 See the [compilation guide](https://www.glfw.org/docs/latest/compile.html) for 64 more information about how to compile GLFW yourself. 65 66 67 ## Using GLFW 68 69 See the [documentation](https://www.glfw.org/docs/latest/) for tutorials, guides 70 and the API reference. 71 72 73 ## Contributing to GLFW 74 75 See the [contribution 76 guide](https://github.com/glfw/glfw/blob/master/docs/CONTRIBUTING.md) for 77 more information. 78 79 80 ## System requirements 81 82 GLFW supports Windows XP and later and macOS 10.8 and later. Linux and other 83 Unix-like systems running the X Window System are supported even without 84 a desktop environment or modern extensions, although some features require 85 a running window or clipboard manager. The OSMesa backend requires Mesa 6.3. 86 87 See the [compatibility guide](https://www.glfw.org/docs/latest/compat.html) 88 in the documentation for more information. 89 90 91 ## Dependencies 92 93 GLFW itself needs only CMake 3.1 or later and the headers and libraries for your 94 OS and window system. 95 96 The examples and test programs depend on a number of tiny libraries. These are 97 located in the `deps/` directory. 98 99 - [getopt\_port](https://github.com/kimgr/getopt_port/) for examples 100 with command-line options 101 - [TinyCThread](https://github.com/tinycthread/tinycthread) for threaded 102 examples 103 - [glad2](https://github.com/Dav1dde/glad) for loading OpenGL and Vulkan 104 functions 105 - [linmath.h](https://github.com/datenwolf/linmath.h) for linear algebra in 106 examples 107 - [Nuklear](https://github.com/Immediate-Mode-UI/Nuklear) for test and example UI 108 - [stb\_image\_write](https://github.com/nothings/stb) for writing images to disk 109 110 The documentation is generated with [Doxygen](https://doxygen.org/) if CMake can 111 find that tool. 112 113 114 ## Reporting bugs 115 116 Bugs are reported to our [issue tracker](https://github.com/glfw/glfw/issues). 117 Please check the [contribution 118 guide](https://github.com/glfw/glfw/blob/master/docs/CONTRIBUTING.md) for 119 information on what to include when reporting a bug. 120 121 122 ## Changelog 123 124 - Added `GLFW_PLATFORM` init hint for runtime platform selection (#1958) 125 - Added `GLFW_ANY_PLATFORM`, `GLFW_PLATFORM_WIN32`, `GLFW_PLATFORM_COCOA`, 126 `GLFW_PLATFORM_WAYLAND`, `GLFW_PLATFORM_X11` and `GLFW_PLATFORM_NULL` symbols to 127 specify the desired platform (#1958) 128 - Added `glfwGetPlatform` function to query what platform was selected (#1655,#1958) 129 - Added `glfwPlatformSupported` function to query if a platform is supported 130 (#1655,#1958) 131 - Added `glfwInitAllocator` for setting a custom memory allocator (#544,#1628,#1947) 132 - Added `GLFWallocator` struct and `GLFWallocatefun`, `GLFWreallocatefun` and 133 `GLFWdeallocatefun` types (#544,#1628,#1947) 134 - Added `glfwInitVulkanLoader` for using a non-default Vulkan loader (#1374,#1890) 135 - Added `GLFW_RESIZE_NWSE_CURSOR`, `GLFW_RESIZE_NESW_CURSOR`, 136 `GLFW_RESIZE_ALL_CURSOR` and `GLFW_NOT_ALLOWED_CURSOR` cursor shapes (#427) 137 - Added `GLFW_RESIZE_EW_CURSOR` alias for `GLFW_HRESIZE_CURSOR` (#427) 138 - Added `GLFW_RESIZE_NS_CURSOR` alias for `GLFW_VRESIZE_CURSOR` (#427) 139 - Added `GLFW_POINTING_HAND_CURSOR` alias for `GLFW_HAND_CURSOR` (#427) 140 - Added `GLFW_MOUSE_PASSTHROUGH` window hint for letting mouse input pass 141 through the window (#1236,#1568) 142 - Added `GLFW_CURSOR_CAPTURED` cursor mode to confine the cursor to the window 143 content area (#58) 144 - Added `GLFW_POSITION_X` and `GLFW_POSITION_Y` window hints for initial position 145 (#1603,#1747) 146 - Added `GLFW_ANY_POSITION` hint value for letting the window manager choose (#1603,#1747) 147 - Added `GLFW_PLATFORM_UNAVAILABLE` error for platform detection failures (#1958) 148 - Added `GLFW_FEATURE_UNAVAILABLE` error for platform limitations (#1692) 149 - Added `GLFW_FEATURE_UNIMPLEMENTED` error for incomplete backends (#1692) 150 - Added `GLFW_WAYLAND_APP_ID` window hint string for Wayland app\_id selection 151 (#2121,#2122) 152 - Added `GLFW_ANGLE_PLATFORM_TYPE` init hint and `GLFW_ANGLE_PLATFORM_TYPE_*` 153 values to select ANGLE backend (#1380) 154 - Added `GLFW_X11_XCB_VULKAN_SURFACE` init hint for selecting X11 Vulkan 155 surface extension (#1793) 156 - Added `GLFW_NATIVE_INCLUDE_NONE` for disabling inclusion of native headers (#1348) 157 - Added `GLFW_BUILD_WIN32` CMake option for enabling Win32 support (#1958) 158 - Added `GLFW_BUILD_COCOA` CMake option for enabling Cocoa support (#1958) 159 - Added `GLFW_BUILD_X11` CMake option for enabling X11 support (#1958) 160 - Added `GLFW_LIBRARY_TYPE` CMake variable for overriding the library type 161 (#279,#1307,#1497,#1574,#1928) 162 - Added `GLFW_PKG_CONFIG_REQUIRES_PRIVATE` and `GLFW_PKG_CONFIG_LIBS_PRIVATE` CMake 163 variables exposing pkg-config dependencies (#1307) 164 - Made joystick subsystem initialize at first use (#1284,#1646) 165 - Made `GLFW_DOUBLEBUFFER` a read-only window attribute 166 - Updated the minimum required CMake version to 3.1 167 - Updated gamepad mappings from upstream 168 - Disabled tests and examples by default when built as a CMake subdirectory 169 - Renamed `GLFW_USE_WAYLAND` CMake option to `GLFW_BUILD_WAYLAND` (#1958) 170 - Removed `GLFW_USE_OSMESA` CMake option enabling the Null platform (#1958) 171 - Removed CMake generated configuration header 172 - Bugfix: The CMake config-file package used an absolute path and was not 173 relocatable (#1470) 174 - Bugfix: Video modes with a duplicate screen area were discarded (#1555,#1556) 175 - Bugfix: Compiling with -Wextra-semi caused warnings (#1440) 176 - Bugfix: Built-in mappings failed because some OEMs re-used VID/PID (#1583) 177 - Bugfix: Some extension loader headers did not prevent default OpenGL header 178 inclusion (#1695) 179 - Bugfix: Buffers were swapped at creation on single-buffered windows (#1873) 180 - Bugfix: Gamepad mapping updates could spam `GLFW_INVALID_VALUE` due to 181 incompatible controllers sharing hardware ID (#1763) 182 - Bugfix: Native access functions for context handles did not check that the API matched 183 - Bugfix: `glfwMakeContextCurrent` would access TLS slot before initialization 184 - Bugfix: `glfwSetGammaRamp` could emit `GLFW_INVALID_VALUE` before initialization 185 - Bugfix: `glfwGetJoystickUserPointer` returned `NULL` during disconnection (#2092) 186 - [Win32] Added the `GLFW_WIN32_KEYBOARD_MENU` window hint for enabling access 187 to the window menu 188 - [Win32] Added a version info resource to the GLFW DLL 189 - [Win32] Made hidden helper window use its own window class 190 - [Win32] Disabled framebuffer transparency on Windows 7 when DWM windows are 191 opaque (#1512) 192 - [Win32] Bugfix: `GLFW_INCLUDE_VULKAN` plus `VK_USE_PLATFORM_WIN32_KHR` caused 193 symbol redefinition (#1524) 194 - [Win32] Bugfix: The cursor position event was emitted before its cursor enter 195 event (#1490) 196 - [Win32] Bugfix: The window hint `GLFW_MAXIMIZED` did not move or resize the 197 window (#1499) 198 - [Win32] Bugfix: Disabled cursor mode interfered with some non-client actions 199 - [Win32] Bugfix: Super key was not released after Win+V hotkey (#1622) 200 - [Win32] Bugfix: `glfwGetKeyName` could access out of bounds and return an 201 invalid pointer 202 - [Win32] Bugfix: Some synthetic key events were reported as `GLFW_KEY_UNKNOWN` 203 (#1623) 204 - [Win32] Bugfix: Non-BMP Unicode codepoint input was reported as UTF-16 205 - [Win32] Bugfix: Monitor functions could return invalid values after 206 configuration change (#1761) 207 - [Win32] Bugfix: Initialization would segfault on Windows 8 (not 8.1) (#1775) 208 - [Win32] Bugfix: Duplicate size events were not filtered (#1610) 209 - [Win32] Bugfix: Full screen windows were incorrectly resized by DPI changes 210 (#1582) 211 - [Win32] Bugfix: `GLFW_SCALE_TO_MONITOR` had no effect on systems older than 212 Windows 10 version 1703 (#1511) 213 - [Win32] Bugfix: `USE_MSVC_RUNTIME_LIBRARY_DLL` had no effect on CMake 3.15 or 214 later (#1783,#1796) 215 - [Win32] Bugfix: Compilation with LLVM for Windows failed (#1807,#1824,#1874) 216 - [Win32] Bugfix: The foreground lock timeout was overridden, ignoring the user 217 - [Win32] Bugfix: Content scale queries could fail silently (#1615) 218 - [Win32] Bugfix: Content scales could have garbage values if monitor was recently 219 disconnected (#1615) 220 - [Win32] Bugfix: A window created maximized and undecorated would cover the whole 221 monitor (#1806) 222 - [Win32] Bugfix: The default restored window position was lost when creating a maximized 223 window 224 - [Win32] Bugfix: `glfwMaximizeWindow` would make a hidden window visible 225 - [Win32] Bugfix: `Alt+PrtSc` would emit `GLFW_KEY_UNKNOWN` and a different 226 scancode than `PrtSc` (#1993) 227 - [Win32] Bugfix: `GLFW_KEY_PAUSE` scancode from `glfwGetKeyScancode` did not 228 match event scancode (#1993) 229 - [Win32] Bugfix: Instance-local operations used executable instance (#469,#1296,#1395) 230 - [Win32] Bugfix: The OSMesa library was not unloaded on termination 231 - [Win32] Bugfix: Right shift emitted `GLFW_KEY_UNKNOWN` when using a CJK IME (#2050) 232 - [Cocoa] Added support for `VK_EXT_metal_surface` (#1619) 233 - [Cocoa] Added locating the Vulkan loader at runtime in an application bundle 234 - [Cocoa] Moved main menu creation to GLFW initialization time (#1649) 235 - [Cocoa] Changed `EGLNativeWindowType` from `NSView` to `CALayer` (#1169) 236 - [Cocoa] Changed F13 key to report Print Screen for cross-platform consistency 237 (#1786) 238 - [Cocoa] Disabled macOS fullscreen when `GLFW_RESIZABLE` is false 239 - [Cocoa] Removed dependency on the CoreVideo framework 240 - [Cocoa] Bugfix: `glfwSetWindowSize` used a bottom-left anchor point (#1553) 241 - [Cocoa] Bugfix: Window remained on screen after destruction until event poll 242 (#1412) 243 - [Cocoa] Bugfix: Event processing before window creation would assert (#1543) 244 - [Cocoa] Bugfix: Undecorated windows could not be iconified on recent macOS 245 - [Cocoa] Bugfix: Touching event queue from secondary thread before main thread 246 would abort (#1649) 247 - [Cocoa] Bugfix: Non-BMP Unicode codepoint input was reported as UTF-16 248 (#1635) 249 - [Cocoa] Bugfix: Failing to retrieve the refresh rate of built-in displays 250 could leak memory 251 - [Cocoa] Bugfix: Objective-C files were compiled as C with CMake 3.19 (#1787) 252 - [Cocoa] Bugfix: Duplicate video modes were not filtered out (#1830) 253 - [Cocoa] Bugfix: Menu bar was not clickable on macOS 10.15+ until it lost and 254 regained focus (#1648,#1802) 255 - [Cocoa] Bugfix: Monitor name query could segfault on macOS 11 (#1809,#1833) 256 - [Cocoa] Bugfix: The install name of the installed dylib was relative (#1504) 257 - [Cocoa] Bugfix: The MoltenVK layer contents scale was updated only after 258 related events were emitted 259 - [Cocoa] Bugfix: Moving the cursor programmatically would freeze it for 260 a fraction of a second (#1962) 261 - [Cocoa] Bugfix: `kIOMasterPortDefault` was deprecated in macOS 12.0 (#1980) 262 - [Cocoa] Bugfix: `kUTTypeURL` was deprecated in macOS 12.0 (#2003) 263 - [Cocoa] Bugfix: A connected Apple AirPlay would emit a useless error (#1791) 264 - [Cocoa] Bugfix: The EGL and OSMesa libraries were not unloaded on termination 265 - [Cocoa] Bugfix: `GLFW_MAXIMIZED` was always true when `GLFW_RESIZABLE` was false 266 - [Cocoa] Bugfix: Changing `GLFW_DECORATED` in macOS fullscreen would abort 267 application (#1886) 268 - [Cocoa] Bugfix: Setting a monitor from macOS fullscreen would abort 269 application (#2110) 270 - [Cocoa] Bugfix: The Vulkan loader was not loaded from the `Frameworks` bundle 271 subdirectory (#2113,#2120) 272 - [X11] Bugfix: The CMake files did not check for the XInput headers (#1480) 273 - [X11] Bugfix: Key names were not updated when the keyboard layout changed 274 (#1462,#1528) 275 - [X11] Bugfix: Decorations could not be enabled after window creation (#1566) 276 - [X11] Bugfix: Content scale fallback value could be inconsistent (#1578) 277 - [X11] Bugfix: `glfwMaximizeWindow` had no effect on hidden windows 278 - [X11] Bugfix: Clearing `GLFW_FLOATING` on a hidden window caused invalid read 279 - [X11] Bugfix: Changing `GLFW_FLOATING` on a hidden window could silently fail 280 - [X11] Bugfix: Disabled cursor mode was interrupted by indicator windows 281 - [X11] Bugfix: Monitor physical dimensions could be reported as zero mm 282 - [X11] Bugfix: Window position events were not emitted during resizing (#1613) 283 - [X11] Bugfix: `glfwFocusWindow` could terminate on older WMs or without a WM 284 - [X11] Bugfix: Querying a disconnected monitor could segfault (#1602) 285 - [X11] Bugfix: IME input of CJK was broken for "C" locale (#1587,#1636) 286 - [X11] Bugfix: Termination would segfault if the IM had been destroyed 287 - [X11] Bugfix: Any IM started after initialization would not be detected 288 - [X11] Bugfix: Xlib errors caused by other parts of the application could be 289 reported as GLFW errors 290 - [X11] Bugfix: A handle race condition could cause a `BadWindow` error (#1633) 291 - [X11] Bugfix: XKB path used keysyms instead of physical locations for 292 non-printable keys (#1598) 293 - [X11] Bugfix: Function keys were mapped to `GLFW_KEY_UNKNOWN` for some layout 294 combinations (#1598) 295 - [X11] Bugfix: Keys pressed simultaneously with others were not always 296 reported (#1112,#1415,#1472,#1616) 297 - [X11] Bugfix: Some window attributes were not applied on leaving fullscreen 298 (#1863) 299 - [X11] Bugfix: Changing `GLFW_FLOATING` could leak memory 300 - [X11] Bugfix: Icon pixel format conversion worked only by accident, relying on 301 undefined behavior (#1986) 302 - [X11] Bugfix: Dynamic loading on OpenBSD failed due to soname differences 303 - [X11] Bugfix: Waiting for events would fail if file descriptor was too large 304 (#2024) 305 - [X11] Bugfix: Joystick events could lead to busy-waiting (#1872) 306 - [X11] Bugfix: `glfwWaitEvents*` did not continue for joystick events 307 - [X11] Bugfix: `glfwPostEmptyEvent` could be ignored due to race condition 308 (#379,#1281,#1285,#2033) 309 - [X11] Bugfix: Dynamic loading on NetBSD failed due to soname differences 310 - [X11] Bugfix: Left shift of int constant relied on undefined behavior (#1951) 311 - [X11] Bugfix: The OSMesa libray was not unloaded on termination 312 - [X11] Bugfix: A malformed response during selection transfer could cause a segfault 313 - [X11] Bugfix: Some calls would reset Xlib to the default error handler (#2108) 314 - [Wayland] Added dynamic loading of all Wayland libraries 315 - [Wayland] Added support for key names via xkbcommon 316 - [Wayland] Added support for file path drop events (#2040) 317 - [Wayland] Added support for more human-readable monitor names where available 318 - [Wayland] Disabled alpha channel for opaque windows on systems lacking 319 `EGL_EXT_present_opaque` (#1895) 320 - [Wayland] Removed support for `wl_shell` (#1443) 321 - [Wayland] Bugfix: The `GLFW_HAND_CURSOR` shape used the wrong image (#1432) 322 - [Wayland] Bugfix: `CLOCK_MONOTONIC` was not correctly enabled 323 - [Wayland] Bugfix: Repeated keys could be reported with `NULL` window (#1704) 324 - [Wayland] Bugfix: Retrieving partial framebuffer size would segfault 325 - [Wayland] Bugfix: Scrolling offsets were inverted compared to other platforms 326 (#1463) 327 - [Wayland] Bugfix: Client-Side Decorations were destroyed in the wrong order 328 (#1798) 329 - [Wayland] Bugfix: Monitors physical size could report zero (#1784,#1792) 330 - [Wayland] Bugfix: Some keys were not repeating in Wayland (#1908) 331 - [Wayland] Bugfix: Non-arrow cursors are offset from the hotspot (#1706,#1899) 332 - [Wayland] Bugfix: The `O_CLOEXEC` flag was not defined on FreeBSD 333 - [Wayland] Bugfix: Key repeat could lead to a race condition (#1710) 334 - [Wayland] Bugfix: Activating a window would emit two input focus events 335 - [Wayland] Bugfix: Disable key repeat mechanism when window loses input focus 336 - [Wayland] Bugfix: Window hiding and showing did not work (#1492,#1731) 337 - [Wayland] Bugfix: A key being repeated was not released when window lost focus 338 - [Wayland] Bugfix: Showing a hidden window did not emit a window refresh event 339 - [Wayland] Bugfix: Full screen window creation did not ignore `GLFW_VISIBLE` 340 - [Wayland] Bugfix: Some keys were reported as wrong key or `GLFW_KEY_UNKNOWN` 341 - [Wayland] Bugfix: Text input did not repeat along with key repeat 342 - [Wayland] Bugfix: `glfwPostEmptyEvent` sometimes had no effect (#1520,#1521) 343 - [Wayland] Bugfix: `glfwSetClipboardString` would fail if set to result of 344 `glfwGetClipboardString` 345 - [Wayland] Bugfix: Data source creation error would cause double free at termination 346 - [Wayland] Bugfix: Partial writes of clipboard string would cause beginning to repeat 347 - [Wayland] Bugfix: Some errors would cause clipboard string transfer to hang 348 - [Wayland] Bugfix: Drag and drop data was misinterpreted as clipboard string 349 - [Wayland] Bugfix: MIME type matching was not performed for clipboard string 350 - [Wayland] Bugfix: The OSMesa library was not unloaded on termination 351 - [Wayland] Bugfix: `glfwCreateWindow` could emit `GLFW_FEATURE_UNAVAILABLE` 352 - [Wayland] Bugfix: Lock key modifier bits were only set when lock keys were pressed 353 - [Wayland] Bugfix: A window leaving full screen mode would be iconified (#1995) 354 - [Wayland] Bugfix: A window leaving full screen mode ignored its desired size 355 - [Wayland] Bugfix: `glfwSetWindowMonitor` did not update windowed mode size 356 - [Wayland] Bugfix: `glfwRestoreWindow` would make a full screen window windowed 357 - [Wayland] Bugfix: A window maximized or restored by the user would enter an 358 inconsistent state 359 - [Wayland] Bugfix: Window maximization events were not emitted 360 - [Wayland] Bugfix: `glfwRestoreWindow` assumed it was always in windowed mode 361 - [Wayland] Bugfix: `glfwSetWindowSize` would resize a full screen window 362 - [Wayland] Bugfix: A window content scale event would be emitted every time 363 the window resized 364 - [Wayland] Bugfix: If `glfwInit` failed it would close stdin 365 - [Wayland] Bugfix: Manual resizing with fallback decorations behaved erratically 366 (#1991,#2115,#2127) 367 - [Wayland] Bugfix: Size limits included frame size for fallback decorations 368 - [Wayland] Bugfix: Updating `GLFW_DECORATED` had no effect on server-side 369 decorations 370 - [Wayland] Bugfix: A monitor would be reported as connected again if its scale 371 changed 372 - [Wayland] Bugfix: `glfwTerminate` would segfault if any monitor had changed 373 scale 374 - [Wayland] Bugfix: Window content scale events were not emitted when monitor 375 scale changed 376 - [Wayland] Bugfix: `glfwSetWindowAspectRatio` reported an error instead of 377 applying the specified ratio 378 - [Wayland] Bugfix: `GLFW_MAXIMIZED` window hint had no effect 379 - [Wayland] Bugfix: `glfwRestoreWindow` had no effect before first show 380 - [Wayland] Bugfix: Hiding and then showing a window caused program abort on 381 wlroots compositors (#1268) 382 - [Wayland] Bugfix: `GLFW_DECORATED` was ignored when showing a window with XDG 383 decorations 384 - [Wayland] Bugfix: Connecting a mouse after `glfwInit` would segfault (#1450) 385 - [POSIX] Removed use of deprecated function `gettimeofday` 386 - [POSIX] Bugfix: `CLOCK_MONOTONIC` was not correctly tested for or enabled 387 - [Linux] Bugfix: Joysticks without buttons were ignored (#2042,#2043) 388 - [WGL] Disabled the DWM swap interval hack for Windows 8 and later (#1072) 389 - [NSGL] Removed enforcement of forward-compatible flag for core contexts 390 - [NSGL] Bugfix: `GLFW_COCOA_RETINA_FRAMEBUFFER` had no effect on newer 391 macOS versions (#1442) 392 - [NSGL] Bugfix: Workaround for swap interval on 10.14 broke on 10.12 (#1483) 393 - [NSGL] Bugfix: Defining `GL_SILENCE_DEPRECATION` externally caused 394 a duplicate definition warning (#1840) 395 - [EGL] Added platform selection via the `EGL_EXT_platform_base` extension 396 (#442) 397 - [EGL] Added ANGLE backend selection via `EGL_ANGLE_platform_angle` extension 398 (#1380) 399 [EGL] Added loading of glvnd `libOpenGL.so.0` where available for OpenGL 400 - [EGL] Bugfix: The `GLFW_DOUBLEBUFFER` context attribute was ignored (#1843) 401 - [GLX] Added loading of glvnd `libGLX.so.0` where available 402 - [GLX] Bugfix: Context creation failed if GLX 1.4 was not exported by GLX library 403 404 405 ## Contact 406 407 On [glfw.org](https://www.glfw.org/) you can find the latest version of GLFW, as 408 well as news, documentation and other information about the project. 409 410 If you have questions related to the use of GLFW, we have a 411 [forum](https://discourse.glfw.org/), and the `#glfw` IRC channel on 412 [Libera.Chat](https://libera.chat/). 413 414 If you have a bug to report, a patch to submit or a feature you'd like to 415 request, please file it in the 416 [issue tracker](https://github.com/glfw/glfw/issues) on GitHub. 417 418 Finally, if you're interested in helping out with the development of GLFW or 419 porting it to your favorite platform, join us on the forum, GitHub or IRC. 420