GLFW est une bibliothèque Open Source multiplateforme pour le développement d'applications OpenGL, OpenGL ES et Vulkan. Il fournit une API simple et indépendante de la plate-forme pour créer des fenêtres, des contextes et des surfaces, lire des entrées, gérer des événements, etc.
GLFW prend en charge nativement Windows, macOS, Linux et autres systèmes de type Unix. Sous Linux, Wayland et X11 sont pris en charge.
GLFW est sous licence zlib/libpng.
Vous pouvez télécharger la dernière version stable en tant que source ou binaires Windows. Chaque version commençant par 3.0 possède également une balise annotée correspondante avec les archives source et binaires.
La documentation est disponible en ligne et est incluse dans toutes les archives sources et binaires. Consultez les notes de version pour connaître les nouvelles fonctionnalités, les mises en garde et les dépréciations de la dernière version. Pour plus de détails, consultez l'historique des versions.
La branche master
est la branche d'intégration stable et doit toujours être compilée et exécutée sur toutes les plates-formes prises en charge, bien que les détails des fonctionnalités nouvellement ajoutées puissent changer jusqu'à ce qu'elles soient incluses dans une version. De nouvelles fonctionnalités et de nombreuses corrections de bugs résident dans d'autres branches jusqu'à ce qu'elles soient suffisamment stables pour fusionner.
Si vous êtes nouveau sur GLFW, le didacticiel pour GLFW 3 peut vous être utile. Si vous avez utilisé GLFW 2 dans le passé, il existe un guide de transition pour passer à l'API GLFW 3.
GLFW existe grâce aux contributions de nombreuses personnes à travers le monde, que ce soit en signalant des bugs, en fournissant un support communautaire, en ajoutant des fonctionnalités, en révisant ou en testant du code, en déboguant, en relisant des documents, en suggérant des fonctionnalités ou en corrigeant des bugs.
GLFW est écrit principalement en C99, certaines parties de la prise en charge de macOS étant écrites en Objective-C. GLFW lui-même ne nécessite que les en-têtes et les bibliothèques de votre système d'exploitation et de votre système de fenêtres. Il n'a pas besoin d'en-têtes supplémentaires pour les API de création de contexte (WGL, GLX, EGL, NSGL, OSMesa) ou les API de rendu (OpenGL, OpenGL ES, Vulkan) pour permettre leur prise en charge.
GLFW prend en charge la compilation sur Windows avec Visual C++ 2013 et versions ultérieures, MinGW et MinGW-w64, sur macOS avec Clang et sur Linux et autres systèmes de type Unix avec GCC et Clang. Il sera probablement également compilé dans d'autres environnements, mais cela n'est pas régulièrement testé.
Des binaires précompilés sont disponibles pour tous les compilateurs pris en charge sous Windows et macOS.
Consultez le guide de compilation pour plus d’informations sur la façon de compiler GLFW vous-même.
Consultez la documentation pour les didacticiels, les guides et la référence API.
Consultez le guide de contribution pour plus d’informations.
GLFW prend en charge Windows XP et versions ultérieures et macOS 10.11 et versions ultérieures. Linux et d'autres systèmes de type Unix exécutant le système X Window sont pris en charge même sans environnement de bureau ni extensions modernes, bien que certaines fonctionnalités nécessitent un gestionnaire de fenêtre ou de presse-papiers en cours d'exécution. Le backend OSMesa nécessite Mesa 6.3.
Consultez le guide de compatibilité dans la documentation pour plus d'informations.
GLFW lui-même n'a besoin que de CMake 3.16 ou version ultérieure ainsi que des en-têtes et bibliothèques de votre système d'exploitation et de votre système de fenêtres.
Les exemples et programmes de test dépendent d'un certain nombre de petites bibliothèques. Ceux-ci se trouvent dans le répertoire deps/
.
La documentation est générée avec Doxygen si CMake peut trouver cet outil.
Les bogues sont signalés à notre outil de suivi des problèmes. Veuillez consulter le guide de contribution pour plus d'informations sur ce qu'il faut inclure lors du signalement d'un bug.
GLFW_UNLIMITED_MOUSE_BUTTONS
qui permet de signaler les boutons de la souris au-delà de la limite des jetons de bouton de la souris (#2423)QuartzCore
en tant que dépendance au moment du lienglfwInit
entraînerait une erreur de segmentation sur le compositeur sans siège (#2517)VK_EXT_headless_surface
EGL_MESA_platform_surfaceless
GLFW_CONTEXT_CREATION_API
défini sur GLFW_NATIVE_CONTEXT_API
(#2518) Sur glfw.org, vous pouvez trouver la dernière version de GLFW, ainsi que des actualités, de la documentation et d'autres informations sur le projet.
Si vous avez des questions liées à l'utilisation de GLFW, nous avons un forum.
Si vous avez un bug à signaler, un correctif à soumettre ou une fonctionnalité que vous souhaitez demander, veuillez le déposer dans le suivi des problèmes sur GitHub.
Enfin, si vous souhaitez contribuer au développement de GLFW ou le porter sur votre plateforme préférée, rejoignez-nous sur le forum ou sur GitHub.