GLFW 3.3 Is Released

  • For those who wonder what GLFW is... if you want to play with OpenGL or Vulkan, make a graphics demo, or make a game, GLFW is a library that frees you from having to deal with the nuances of Win32/X11/etc, wrangles keyboard inputs and other things across platforms.

    It is similar to LibSDL, but is more lightweight and GPU-centric. GLFW is designed more with greenfield projects in mind, whereas LibSDL was designed from the beginning to help with porting existing code. (They are both excellent libraries.)

  • Very excited for this release! GLFW is part of the foundation for a UI framework we're building called Revery [1] and there are several features in 3.3 that will be useful for us - transparent framebuffers, headless backend via OSMesa (important for CI / automation), and high-DPI improvements.

    GLFW takes a lot of the pain out of cross-platform GPU development, and I've found the API simple and intuitive to work with. For those looking to play with it - the LearnOpenGL tutorial series [2] is excellent, and uses GLFW for managing a window and getting an OpenGL context.

    Thank you maintainers for your work on it!

    - [1] Revery: https://github.com/revery-ui/revery

    - [2] LearnOpenGL: https://learnopengl.com/Getting-started/Creating-a-window

  • Nice to see this is still in development. I wrote GLWF bindings for two languages and it was pretty easy to grok. It's also absolutely essential if you want to have an UI in a language without support for GUIs (like golang). Just use the OpenGL backend for the immediate mode UI lib of your choice (dear-imgui, nuklear, ...) and GLFW for the window setup and you're golden.

  • Excellent! I've been using GLFW_TRANSPARENT_FRAMEBUFFER for over a year, but kept having to do builds out of Git to get support. It will be nice when this new library trickles into Linux distros over the next year.

  • "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."

  • As a nice complement to GLFW, there's also bgfx which can be configured to use GLFW:

    https://github.com/bkaradzic/bgfx

  • Can somebody explain what are the advantages of glfw over freeglut? (other than the non-issue of "being" old)

    I am using freeglut for casual opengl code, and I see no problem with it. Is there anything that I am missing?

  • Finally, I was waiting for this release, they fixed an annoying click event bug on Linux.

    Hard to know why this bug had to wait so long for a fix. Where are the delays coming from?

  • Dynamic loading of backends, i.e. supporting X11 and Wayland with the same build (PR #1338) didn't make it :(