GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktop. It provides a simple API for creating windows, contexts and surfaces, receiving input and events.

GLFW is written in C and supports Windows, macOS, Wayland and X11.

GLFW is licensed under the zlib/libpng license.


nostalgia vx shader
Gives you a window and OpenGL context with just two function calls
nostalgia vx shader
Support for OpenGL, OpenGL ES, Vulkan and related options, flags and extensions
nostalgia vx shader
Support for multiple windows, multiple monitors, high-DPI and gamma ramps
nostalgia vx shader
Support for keyboard, mouse, gamepad, time and window event input, via polling or callbacks
nostalgia vx shader
Comes with a tutorial, guides and reference documentation, examples and test programs
nostalgia vx shader
Open Source with an OSI-certified license allowing commercial use
nostalgia vx shader
Access to native objects and compile-time options for platform specific features
nostalgia vx shader
Community-maintained bindings for many different languages

No library can be perfect for everyone. If GLFW isn’t what you’re looking for, there are alternatives.

Nostalgia: Vx Shader //top\\

He heard music. Not from the game. From his childhood bedroom. A distant, compressed MIDI version of a song he’d forgotten he ever knew.

At two hours and fifty minutes, he tried to close the engine. The screen froze. A terminal window opened on its own. It displayed a single line: Rendering complete. You are now the shader. Leo stood up. His reflection in the dark monitor was wrong. He was younger. No beard. A t-shirt he hadn’t worn since 2005. His face was smooth, unlined, and his eyes were just two bright dots. nostalgia vx shader

The screen flickered. Not like a crash—like a blink. Then the viewport resolved. He heard music

He dragged the .fx file into the engine’s shader folder and hit compile. A distant, compressed MIDI version of a song

He moved the camera. The character model—a high-fidelity avatar he’d spent weeks rigging—had melted. It was now the original protagonist from Lucid Static : a low-poly girl with blocky hands and eyes that were just two bright dots. But she wasn't static. Her idle animation had changed. She was looking over her shoulder. Directly at the camera. At him .

There was no reply. But his office PC was still running. And in the viewport, the low-poly girl with the bright dot eyes was playing the game for him. She moved the character through a forest that no longer existed. She was crying, but the shader rendered the tears as scanlines—thin, flickering, and impossible to save.

Leo opened his mouth to answer, but the shader had already finished compiling his response. All that came out was a soft, pixelated sigh—the audio equivalent of a texture failing to load.

Version 3.3.10 released

Posted on

GLFW 3.3.10 is available for download.

This is a bug fix release. It adds fixes for issues on all supported platforms.

Binaries for Visual C++ 2010 and 2012 are no longer included. These versions are no longer supported by Microsoft and should not be used. This release of GLFW can still be compiled with them if necessary, but future releases will drop this support.

Binaries for the original MinGW distribution are no longer included. MinGW appears to no longer be maintained and should not be used. The much more capable MinGW-w64 project should be used instead. This release of GLFW can still be compiled with the original MinGW if necessary, but future releases will drop this support.

Version 3.3.9 released

Posted on

GLFW 3.3.9 is available for download.

This is primarily a bug fix release for all supported platforms but it also adds libdecor support for Wayland. This provides better window decorations in some desktop environments, notably GNOME.

With this release GLFW should be fully usable on Wayland, although there are still some issues left to resolve.

See the news archive for older posts.