GLFW
{{short description|Software library}}
{{multiple issues|
{{refimprove|date=May 2015}}
{{primary sources|date=September 2015}}
}}
{{Infobox software
| name = GLFW
| logo =
| logo caption =
| screenshot =
| caption =
| collapsible =
| author = Marcus Geelnard
| developer = The GLFW Development Team
| released = {{start date and age|2002|02|17}}
| discontinued =
| latest release version = 3.4
| latest release date = {{start date and age|2024|02|23}}{{cite web
| url = https://github.com/glfw/glfw/releases
| title = Releases · glfw/glfw
| website = github.com
| access-date = 2024-02-23
}}
| latest preview version =
| latest preview date =
| programming language = C
| operating system = Linux, macOS, Microsoft Windows, FreeBSD, NetBSD, OpenBSD
| platform = Cross-platform
| size =
| language =
| genre = API
| license = zlib/libpng License{{cite web
| url = https://www.glfw.org/license.html
| title = License | GLFW
| website = glfw.org
| access-date = 2021-04-10
}}
}}
GLFW (Graphics Library Framework) is a lightweight utility library for use with OpenGL, OpenGL ES and Vulkan. It provides programmers with the ability to create and manage windows and OpenGL contexts, as well as handle joystick, keyboard and mouse input.{{cite web |title=GLFW homepage |url=https://www.glfw.org/ |access-date=2022-09-15 |work=www.glfw.org}}
Software architecture
GLFW is a small C library that allows the creation and management of windows with OpenGL contexts, making it also possible to use multiple monitors and video modes. It provides access to input from the keyboard, mouse, and joysticks.{{cite web |title=GLFW: Input guide |url=https://www.glfw.org/docs/3.3/input_guide.html |access-date=2021-02-07 |work=www.glfw.org}} The API provides a thin, multi-platform abstraction layer, primarily for applications whose sole graphics output is through the OpenGL API. While GLFW is very useful when developing multi-platform OpenGL applications, single-platform developers can also benefit from avoiding having to deal with a platform-specific API.
GLFW is used in programs that require a window, due to OpenGL not providing any mechanisms for creating the necessary contexts, managing windows, user input, timing, etc.{{cite web |title=LearnOpenGL - Creating a window |url=https://learnopengl.com/Getting-started/Creating-a-window |access-date=2022-09-15 |work=www.learnopengl.com}} There are several other libraries available for aiding OpenGL development. The most common ones are FreeGLUT (an Open Source implementation of GLUT) and SDL. However, FreeGLUT is mostly concerned with providing a stable clone of GLUT, while SDL is too large for some people and has never had OpenGL as its main focus. GLFW is predicated on the assumption that there is room for a lightweight, modern library for managing OpenGL contexts, windows, and input.
GLFW is not a user-interface library, platform-specific library, image-loading library or a threading library. Additionally, it cannot render independently or playback sound.
=Programming language bindings=
=Back-ends=
GLFW version 3.2 has experimental support for Wayland through compile-time flags.{{cite web |url=http://www.glfw.org/docs/3.2/news.html |title=GLFW: New features in 3.2}}
See also
- GLUT – OpenGL's legacy windowing toolkit
- OpenGL Extension Wrangler Library
- Raylib
- Simple DirectMedia Layer
References
External links
- {{Official website}}
- {{GitHub|https://github.com/glfw/glfw}}
{{DEFAULTSORT:GLFWl}}
Category:Application programming interfaces
Category:C (programming language) libraries
Category:Cross-platform software
Category:Free software programmed in C