This adds gamepad input via SDL_GameControllerDB, support for Vulkan on macOS via MoltenVK, better handling of high-DPI and scaling, changing attributes of existing windows, raw mouse motion input, explicit support for joystick hats/dpads, user attention requests, transparent windows and framebuffers (where possible), query for monitor work area, more run-time configuration, various other features as well as fixes for a large number of bugs.
Changes:
3.2.1
=====
Vulkan improvements
-------------------
Add support for statically linking the Vulkan loader
Misc improvements and bug fixes
-------------------------------
Fixes for a number of bugs that together affect all supported platforms.
3.2
===
Support for Vulkan
------------------
GLFW now supports basic integration with Vulkan with glfwVulkanSupported,
glfwGetRequiredInstanceExtensions, glfwGetInstanceProcAddress,
glfwGetPhysicalDevicePresentationSupport and glfwCreateWindowSurface.
Vulkan header inclusion can be selected with
GLFW_INCLUDE_VULKAN.
Window mode switching
---------------------
GLFW now supports switching between windowed and full screen modes and updating
the monitor and desired resolution and refresh rate of full screen windows with
glfwSetWindowMonitor.
Window maxmimization support
----------------------------
GLFW now supports window maximization with glfwMaximizeWindow and the
GLFW_MAXIMIZED hint and attribute.
Window input focus control
--------------------------
GLFW now supports giving windows input focus with glfwFocusWindow.
Window size limit support
-------------------------
GLFW now supports setting both absolute and relative window size limits with
glfwSetWindowSizeLimits and glfwSetWindowAspectRatio.
Localized key names
-------------------
GLFW now supports querying the localized name of printable keys with
glfwGetKeyName, either by key token or by scancode.
Wait for events with timeout
----------------------------
GLFW now supports waiting for events for a set amount of time with
glfwWaitEventsTimeout.
Window icon support
-------------------
GLFW now supports setting the icon of windows with glfwSetWindowIcon.
Raw timer access
----------------
GLFW now supports raw timer values with glfwGetTimerValue and
glfwGetTimerFrequency.
Joystick connection callback
----------------------------
GLFW now supports notifying when a joystick has been connected or disconnected
with glfwSetJoystickCallback.
Context-less windows
--------------------
GLFW now supports creating windows without a OpenGL or OpenGL ES context with
GLFW_NO_API.
Run-time context creation API selection
---------------------------------------
GLFW now supports selecting the context creation API at run-time with the
GLFW_CONTEXT_CREATION_API window hint value.
Error-free context creation
---------------------------
GLFW now supports creating OpenGL and OpenGL ES contexts that do not emit errors
with the GLFW_CONTEXT_NO_ERROR window hint, provided
the machine supports the `GL_KHR_no_error` extension.
CMake config-file package support
---------------------------------
GLFW now supports being used as a
config-file package from other projects for
easy linking with the library and its dependencies.
Originally packaged in pkgsrc-wip by ryoon@ and then updated by nros@ and
myself.
GLFW is a free, Open Source, multi-platform library for creating
OpenGL contexts and managing input, including keyboard, mouse,
joystick and time. It is intended to be simple to integrate into
existing applications and does not lay claim to the main loop.
GLFW has native support for Windows, Mac OS X and many Unix-like
systems using the X Window System, such as Linux and FreeBSD.
GLFW is licensed under the zlib/libpng license.