GLFW is an Open Source, multi-platform library for creating windows with OpenGL contexts and managing input and events. It is easy to integrate into existing applications and does not lay claim to the main loop.
GLFW is written in C and 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.
- Easy to use API in the style of the OpenGL APIs
- Gives you a window and OpenGL context with two function calls
- Explicit support for MSAA, sRGB, robustness, OpenGL 3.2+ and OpenGL ES
- Support for multiple monitors, high-DPI, gamma ramps and clipboard
- Input can be either polled or delivered via callbacks
- UTF-8 for all strings and basic Unicode character input
- Supports both static and dynamic linking
- Open Source with a liberal OSI-certified license
- Examples and comprehensive documentation
If GLFW isn’t what you are looking for, there are alternatives.
Version 3.0.1 released
Version 3.0 released
GLFW 3.0 is available for download. It adds support for multiple windows, multiple monitors, clipboard text I/O, gamma ramps, better error reporting, more event callbacks, undecorated windows, joystick names, a new build system using CMake, UTF-8 for all strings, experimental support for EGL and OpenGL ES and more.
GLFW 3.0 is not backwards compatible with 2.7, but there is a transition guide for moving to the new API.
Version 2.7.9 released
GLFW 2.7.9 is available for download. This release adds fixes for multiple cursor motion bugs on Windows and fixes support for the LFLAGS environment variable on OS X.
GLFW repositories moved to GitHub
All GLFW repositories have been moved to GitHub. This includes the stable version 2.7, which has been migrated from Subversion, the ongoing development for version 3.0 and the sources for this site. Move notices have been added to the repositories on SourceForge.net.
Version 2.7.8 released
GLFW 2.7.8 is available for download. This release adds fixes for a few minor bugs on each platform, most notably the flashing window on Win32 and a workaround for a bug in Mesa 9.x.
Site moved to Jekyll
Through Jekyll, there’s now also an Atom feed for GLFW news.
Version 2.7.7 released
GLFW 2.7.7 is available for download. This release adds fixes for a few minor bugs on each platform, support for more swap interval methods on X11 and Visual C++ 2012 project files.
Version 2.7.6 released
GLFW 2.7.6 is available for download. This release adds support for joysticks on Mac OS X, a graphical joystick test, support for 64-bit builds using MinGW-w64 and fixes for a number of (primarily input related) bugs.
Version 2.7.5 released
GLFW 2.7.5 is available for download. This release fixes a compilation bug for certain versions of Mac OS X and adds support for monotonic time input on Cocoa.
Version 2.7.4 released
GLFW 2.7.4 is available for download. This release adds bug fixes for a few minor issues in 2.7.3, most notably the missing
-lrt on X11 and the non-interactive menu bar created by
glfwInit on Mac OS X.
See the news archive for older posts.