GLFW

From Wikipedia, the free encyclopedia

Template:Short description

Page Module:Message box/ambox.css has no content.Page Template:Multiple issues/styles.css has no content.

Page Module:Infobox/styles.css has no content.

GLFW
[[Programmer|Original authorTemplate:Pluralize from text]]Marcus Geelnard
[[Programmer|DeveloperTemplate:Pluralize from text]]The GLFW Development Team
Initial releaseFebruary 17, 2002; 24 years ago (2002-02-17)
Template:Infobox software/simple
Written inC
EnginePage Template:Plainlist/styles.css has no content.Template:EditAtWikidata
Operating systemLinux, macOS, Microsoft Windows, FreeBSD, NetBSD, OpenBSD
PlatformCross-platform
TypeAPI
Licensezlib/libpng License[1]
WebsiteScript error: No such module "WikidataIB".
RepositoryPage Template:Plainlist/styles.css has no content.

Script error: No such module "Check for conflicting parameters".

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 as well as OpenGL and Vulkan contexts, as well as handle joystick, keyboard and mouse input.[3]

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.[4] The API provides a thin, multi-platform abstraction layer, primarily for applications whose sole graphics output is through the OpenGL API. While GLFW is designed for developing multi-platform OpenGL applications, it may also be used to avoid platform-specific APIs.

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.[5] 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.[6]

Programming language bindings

Although GLFW is written in C, bindings do exist to use the API with other programming languages including Ada, C#, Common Lisp, D, Delphi, Go, Harbour, Haskell, Java, Julia, Python, Rebol, Red, Ruby and Rust, among others.[7]

Back-ends

GLFW version 3.2 has experimental support for Wayland through compile-time flags.[8]

See also

References

  1. ^ Page Module:Citation/CS1/styles.css has no content."License | GLFW". glfw.org. Retrieved 2021-04-10.
  2. ^ Page Module:Citation/CS1/styles.css has no content."Releases · glfw/glfw". github.com. Retrieved 2024-02-23.
  3. ^ Page Module:Citation/CS1/styles.css has no content."GLFW homepage". www.glfw.org. Retrieved 2022-09-15.
  4. ^ Page Module:Citation/CS1/styles.css has no content."GLFW: Input guide". www.glfw.org. Retrieved 2021-02-07.
  5. ^ Page Module:Citation/CS1/styles.css has no content."LearnOpenGL - Creating a window". www.learnopengl.com. Retrieved 2022-09-15.
  6. ^ Page Module:Citation/CS1/styles.css has no content."GLFW – FAQ". Retrieved 11 July 2015.
  7. ^ Page Module:Citation/CS1/styles.css has no content."GLFW Programming language bindings". Retrieved 4 September 2019.
  8. ^ Page Module:Citation/CS1/styles.css has no content."GLFW: New features in 3.2".
  • Lua error in Module:Official_website at line 94: attempt to index field 'wikibase' (a nil value).
  • glfw on GitHub