GLFW 3.1.2 released

GLFW 3.1.2 is available for download. It adds fixes for a large number of bugs that together affect all supported platforms, as well as dynamic loading work that simplifies compilation and linking.

  • Made all client API functions dynamically loaded
  • Changed minimum required CMake version to 2.8.12
  • Replaced GLU with linmath.h in example programs
  • Merged all cursor test programs into the cursor program
  • Removed all mention of GLU in examples, build files and package dependencies
  • Bugfix: Initialization failed on headless systems
  • Bugfix: The cached current context could get out of sync
  • Bugfix: glfwIconifyWindow did not restore the original video mode for full screen windows created with GLFW_AUTO_ICONIFY
  • [Win32] Renamed hybrid GPU override compile-time option to _GLFW_USE_HYBRID_HPG and added support for AMD PowerXpress systems
  • [Win32] Bugfix: glfwGetVideoModes included unusable modes on some systems
  • [Win32] Bugfix: glfwWaitEvents would return directly for focused windows in disabled cursor mode
  • [Cocoa] Bugfix: The cached NSScreen for a monitor could get out of sync
  • [Cocoa] Bugfix: The GLFW_AUTO_ICONIFY window hint was ignored
  • [Cocoa] Bugfix: Resizing a window to its minimum size would segfault
  • [Cocoa] Bugfix: Creating or showing a window would make its context current
  • [Cocoa] Bugfix: Joysticks connected after glfwInit were not detected
  • [Cocoa] Bugfix: Cursor creation failed unless a window had been created.
  • [Cocoa] Bugfix: Window refresh events were not generated by iconification or restoration
  • [Cocoa] Bugfix: The primary monitor would get reported as disconnected when entering full screen on a dual-GPU machine with automatic graphics switching
  • [Cocoa] Bugfix: The original video modes were not restored when the application was hidden
  • [X11] Bugfix: glfwInit would segfault on systems without RandR
  • [X11] Bugfix: The response to _NET_WM_PING was sent to the wrong window
  • [X11] Bugfix: Character input via XIM did not work in many cases
  • [X11] Bugfix: No fallback existed for missing _NET_ACTIVE_WINDOW support
  • [X11] Bugfix: Some significant window focus events were ignored
  • [X11] Bugfix: The GLFW_AUTO_ICONIFY window hint was ignored
  • [X11] Bugfix: The original video mode was not restored on iconification of full screen windows
  • [X11] Bugfix: GLFW_ARROW_CURSOR selected the wrong cursor image
  • [X11] Bugfix: The GLFW_DECORATED hint was not ignored for full screen
  • [X11] Bugfix: glfwWaitEvents did not handle EINTR for select
  • [X11] Bugfix: glfwWaitEvents could return when no events were available
  • [X11] Bugfix: XkbGetKeyboard fails on XWayland
  • [X11] Bugfix: Character input did not work correctly for non-UTF-8 locales
  • [X11] Bugfix: Long input sequences generated by IMEs were discarded
  • [WGL] Made all WGL functions dynamically loaded
  • [WGL] Removed GLFW_USE_DWM_SWAP_INTERVAL compile-time option
  • [WGL] Bugfix: Swap interval was ignored when DWM was enabled
  • [WGL] Bugfix: Failure to find a pixel format was reported incorrectly
  • [GLX] Added dependency on libdl on systems where it provides dlopen
  • [GLX] Made all GLX functions dynamically loaded
  • [GLX] Removed _GLFW_HAS_GLXGETPROCADDRESS* and _GLFW_HAS_DLOPEN compile-time options
  • [GLX] Bugfix: Failure to find a GLXFBConfig was reported incorrectly
  • [EGL] Made all EGL functions dynamically loaded
  • [EGL] Bugfix: glfwGetProcAddress did not return the addresses of core functions
  • [EGL] Bugfix: Failure to find an EGLConfig was reported incorrectly
  • [NSGL] Bugfix: Failure to find a pixel format was reported incorrectly