GLFW - Le Bottin des Jeux Linux

GLFW

Specifications

Title: GLFW Type: Tool
Genre: Development Status:
Category: Development ➤ Framework & Tool Commercial:
Tags: Development; C/C++; Frameworks Demo:
Released: Latest : 3.2 / Dev : E81f4b2 Package Name: libglfw3-dev
Date: 2016-06-23 Extern Repo:
License: zlib/libpng Deb Repo: Debian
View: Third person Package: ✓
Graphic: Text Binary: ✓
Mechanics: Real Time Source: ✓
Played: Single PDA:
Quality (record): 5 stars Quality (game):
Contrib.: Goupil & Louis ID: 15024
Created: 2016-06-25 Updated: 2016-06-25

Summary

[fr]: Une bibliothèque légère, libre, multi-plateforme et open source pour le développement d'applications desktop OpenGL, OpenGL ES et Vulkan. Elle fournit aux programmeurs la possibilité de créer et de gérer des fenêtres et des contextes pour ces interfaces graphiques, et le support des joystick, clavier et souris. [en]: a free, 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. It is written in C and has native support for Windows, OS X and many Unix-like systems using the X Window System, such as Linux and FreeBSD.

Videos

Trailer / Gameplay [en] / [en] / [fr] :

Links

Website & videos
[Homepage] [Dev site] [Features/About] [Screenshots] [Videos t ts gd r d d d d d d d d d d ht ht ht ht g[fr] g[de] g] [WIKI] [FAQ] [RSS] [Changelog 1 2 3 4]

Commercial : (empty)

Resources
• (empty)
Technical informations
[Open Hub] [PCGamingWiki] [MobyGames]

Social
Devs (GLFW Team [fr] [en]) : [Site 1 2] [twitter] [YouTube] [Interview 1 2]
Devs (Camilla Berglund [fr] [en]) : [Site 1 2] [twitter] [YouTube] [LinkedIn] [Interview 1 2]
Game : [Blog] [Forums] [twitter] [YouTube]

On other sites
[Wikipedia (GL FrameWork) [fr] [en]]
[Debian]

Reviews
[metacritic]

News / Source of this Entry (SotE) / News (SotN)
[Gaming on Linux (20160608)]

Description [fr]

Une bibliothèque pour le développement d'applications desktop OpenGL, OpenGL ES et Vulkan, par la GLFW Team (Camilla Berglund aka elmindreda et de nombreux autres).

GLFW (GL FrameWork) est une bibliothèque légère, libre, multi-plateforme et open source pour le développement d'applications desktop OpenGL, OpenGL ES et Vulkan. Elle fournit aux programmeurs la possibilité de créer et de gérer des fenêtres et des contextes pour ces interfaces graphiques, et le support des joystick, clavier et souris.


GLFW est une bibliothèque libre, multi-plateforme, et open source pour le développement d'applications desktop OpenGL, OpenGL ES et Vulkan. Elle fournit une API simple permettant de créer des fenêtres, des contextes et des surfaces, recevant une entrée et des événements.

GLFW est écrit en C et a un support natif pour Windows, OS X et de nombreux systèmes Unix en utilisant le système X Window, tels que Linux et FreeBSD.

GLFW est placé sous la licence zlib / libpng.


Utilisé par ces jeux / Used by these games : Pandora: First Contact,



Wikipedia:

GLFW (GL Frame Work) est une bibliothèque offrant un jeu de routines pour la gestion des fenêtres OpenGL, proposée en alternative à GLUT.

Description [en]

GLFW is a free, 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 has native support for Windows, OS X and many Unix-like systems using the X Window System, such as Linux and FreeBSD.

GLFW is licensed under the zlib/libpng license.

What is GLFW?

GLFW is a small C library that lets you create and manage windows, OpenGL and OpenGL ES contexts and Vulkan surfaces, enumerate monitors and video modes as well as handle inputs such as keyboard, mouse, joystick, clipboard and time.

GLFW provides a thin, multi-platform abstraction layer, primarily for applications whose sole graphics output is through OpenGL, OpenGL ES or Vulkan. While GLFW is very useful when developing multi-platform OpenGL applications, single-platform developers can also benefit from avoiding having to deal with kludgy platform-specific APIs.

Libraries like GLFW are useful because OpenGL and OpenGL ES by themselves do not provide any mechanisms for creating the necessary context, managing windows, user input, timing etc. As stated in the OpenGL 3.1 Specification (chapter 2, first paragraph):

OpenGL is concerned only with rendering into a framebuffer (and reading values stored in that framebuffer). There is no support for other peripherals sometimes associated with graphics hardware, such as mice and keyboards. Programmers must rely on other mechanisms to obtain user input.

GLFW matches the description of other mechanisms quite well.

Unlike the GL APIs, Vulkan does provide its own instance and surface creation functions, but surface creation is platform-specific and the API still only covers rendering.




Wikipedia:

GLFW is a lightweight utility library for use with OpenGL. It provides programmers with the ability to create and manage windows and OpenGL contexts, as well as handle joystick, keyboard and mouse input.

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 keyboard, mouse and joysticks. 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 kludgy platform-specific APIs.

A possible reason that libraries like GLFW are needed is that OpenGL by itself does not provide any mechanisms for creating the necessary context, managing windows, user input, timing etc. 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 by design not:

• a user interface library. It allows the programmer to create top-level windows with OpenGL contexts. No menus, no buttons.
• a Windows-only library. Requests for features that cannot be portably implemented will be denied unless they are unobtrusive, like the Windows port looking for a GLFW_ICON resource at window creation.
• a threading library. There are already good cross-platform threading libraries and threading has been added to both the C11 and C++11 standard libraries.
• an image loading library. There are already good cross-platform image loading libraries.
• capable of rendering text. There are already several libraries that render text with OpenGL and consistent cross-platform text rendering cannot depend on the platform’s text rendering facilities anyway.
• capable of rendering anything at all. Rendering is up to the programmer and/or other libraries.
• integrated with any user interface toolkit on any platform. Good UI toolkits already provide OpenGL-capable widgets and having two libraries both talking to the vast global state of a window system is asking for trouble.
• able to play back sound.
• GLUT or SDL.

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, Go, Haskell, Java, Python, Rebol, Red, Ruby and Rust, among others.

Back-ends

GLFW version 3.2 has Wayland support and Mir has experimental support through compile-time flags.