GLFW, a library providing cross platform window and input handling functionality for OpenGL, OpenGL ES and now Vulkan applications, just released version 3.2. The aforementioned Vulkan support is probably the biggest new feature in this release, however this release contains several new features.
From the complete change log:
- Added
glfwVulkanSupported
,glfwGetRequiredInstanceExtensions
,glfwGetInstanceProcAddress
,glfwGetPhysicalDevicePresentationSupport
andglfwCreateWindowSurface
for platform independent Vulkan support- Added
glfwSetWindowMonitor
for switching between windowed and full screen modes and updating the monitor and desired video mode of full screen windows- Added
glfwMaximizeWindow
andGLFW_MAXIMIZED
for window maximization- Added
glfwFocusWindow
for giving windows input focus- Added
glfwSetWindowSizeLimits
andglfwSetWindowAspectRatio
for setting absolute and relative window size limits- Added
glfwGetKeyName
for querying the layout-specific name of printable keys- Added
glfwWaitEventsTimeout
for waiting for events for a set amount of time- Added
glfwSetWindowIcon
for setting the icon of a window- Added
glfwGetTimerValue
andglfwGetTimerFrequency
for raw timer access- Added
glfwSetJoystickCallback
andGLFWjoystickfun
for joystick connection and disconnection events- Added
GLFW_NO_API
for creating window without contexts- Added
GLFW_INCLUDE_VULKAN
for including the Vulkan header- Added
GLFW_CONTEXT_CREATION_API
,GLFW_NATIVE_CONTEXT_API
andGLFW_EGL_CONTEXT_API
for run-time context creation API selection- Added
GLFW_CONTEXT_NO_ERROR
context hint forGL_KHR_no_error
support- Added
GLFW_TRUE
andGLFW_FALSE
as client API independent boolean values- Added icons to examples on Windows and OS X
- Relaxed rules for native access header macros
- Removed dependency on external OpenGL or OpenGL ES headers
- Removed
_GLFW_USE_OPENGL
,_GLFW_USE_GLESV1
,_GLFW_USE_GLESV2
,_GLFW_WGL
,_GLFW_NSGL
,_GLFW_GLX
and_GLFW_EGL
configuration macros- [Win32] Added support for Windows 8.1 per-monitor DPI
- [Win32] Replaced winmm with XInput and DirectInput for joystick input
- [Win32] Bugfix: Window creation would segfault if video mode setting required the system to be restarted
- [Win32] Bugfix: MinGW import library lacked the
lib
prefix- [Win32] Bugfix: Monitor connection and disconnection events were not reported when no windows existed
- [Win32] Bugfix: Activating or deactivating displays in software did not trigger monitor callback
- [Win32] Bugfix: No monitors were listed on headless and VMware guest systems
- [Win32] Bugfix: Pressing Ctrl+Pause would report
GLFW_KEY_UNKNOWN
- [Win32] Bugfix: Window size events would be reported in wrong order when restoring a full screen window
- [Cocoa] Made joystick polling more efficient
- [Cocoa] Removed support for OS X 10.6
- [Cocoa] Bugfix: Full screen windows on secondary monitors were mispositioned
- [Cocoa] Bugfix: Connecting a joystick that reports no name would segfault
- [Cocoa] Bugfix: Modifier flags cache was not updated when window became key
- [Cocoa] Bugfix: Dead key character composition did not work
- [Cocoa] Bugfix: The CGL context was not released until the autorelease pool was drained by another function
- [X11] Bugfix: Monitor connection and disconnection events were not reported
- [X11] Bugfix: Decoding of UTF-8 text from XIM could continue past the end
- [X11] Bugfix: An XKB structure was leaked during
glfwInit
- [X11] Bugfix: XInput2
XI_Motion
events interfered with the Steam overlay- [POSIX] Bugfix: An unrelated TLS key could be deleted by
glfwTerminate
- [Linux] Made joystick polling more efficient
- [WGL] Changed extension loading to only be performed once
- [WGL] Removed dependency on external WGL headers
- [GLX] Added
glfwGetGLXWindow
to query theGLXWindow
of a window- [GLX] Replaced legacy drawable with
GLXWindow
- [GLX] Removed dependency on external GLX headers
- [GLX] Bugfix: NetBSD does not provide
libGL.so.1
- [EGL] Added
_GLFW_USE_EGLPLATFORM_H
configuration macro for controlling whether to use an existingEGL/eglplatform.h
header- [EGL] Added and documented test for if the context is current on the calling thread during buffer swap
- [EGL] Removed dependency on external EGL headers