GLFW

Build status Build status

Introduction

GLFW is a free, Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc.

Version 3.2 adds support for Vulkan surface creation, window mode switching, window maximization, window input focus control, window size and aspect ratio limits, human-readable key names, window icons, joystick connection events, XInput and DirectInput joystick input, event waiting with timeout, 64-bit integer raw timer, context-less window creation, error-less contexts via GL_KHR_no_error (where available), run-time context creation API selection, Windows 8.1 per-monitor DPI and the CMake config-file package system, adds simpler build-time configuration, improved documentation and fixes for a large number of bugs that together affect all supported platforms.

If you are new to GLFW, you may find the tutorial for GLFW 3 useful. If you have used GLFW 2 in the past, there is a transition guide for moving to the GLFW 3 API.

Compiling GLFW

See the Compiling GLFW guide in the GLFW documentation.

Using GLFW

See the Building programs that use GLFW guide in the GLFW documentation.

Reporting bugs

Bugs are reported to our issue tracker. Please always include the name and version of the OS where the bug occurs and the version of GLFW used. If you have cloned it, include the commit ID used.

If it's a build issue, please also include the build log and the name and version of your development environment.

If it's a context creation issue, please also include the make and model of your graphics card and the version of your driver.

This will help both us and other people experiencing the same bug.

Dependencies

GLFW itself needs only the headers and libraries for your window system. It does not need the headers for any context creation API (WGL, GLX, EGL, NSGL) or rendering API (OpenGL, OpenGL ES, Vulkan) to enable support for them.

The examples and test programs depend on a number of tiny libraries. These are located in the deps/ directory.

The Vulkan example additionally requires the Vulkan SDK to be installed, or it will not be included in the build.

The documentation is generated with Doxygen. If CMake does not find Doxygen, the documentation will not be generated.

Changelog

Contact

The official website for GLFW is glfw.org. There you can find the latest version of GLFW, as well as news, documentation and other information about the project.

If you have questions related to the use of GLFW, we have a support forum, and the IRC channel #glfw on Freenode.

If you have a bug to report, a patch to submit or a feature you'd like to request, please file it in the issue tracker on GitHub.

Finally, if you're interested in helping out with the development of GLFW or porting it to your favorite platform, join us on GitHub or IRC.

Acknowledgements

GLFW exists because people around the world donated their time and lent their skills.