GLFW ist eine plattformübergreifende Open-Source-Bibliothek für die Anwendungsentwicklung mit OpenGL, OpenGL ES und Vulkan. Es bietet eine einfache, plattformunabhängige API zum Erstellen von Fenstern, Kontexten und Oberflächen, zum Lesen von Eingaben, zum Behandeln von Ereignissen usw.
GLFW unterstützt nativ Windows, macOS und Linux sowie andere Unix-ähnliche Systeme. Unter Linux werden sowohl Wayland als auch X11 unterstützt.
GLFW ist unter der zlib/libpng-Lizenz lizenziert.
Sie können die neueste stabile Version als Quell- oder Windows-Binärdateien herunterladen. Jede Version ab 3.0 verfügt außerdem über ein entsprechendes kommentiertes Tag mit Quell- und Binärarchiven.
Die Dokumentation ist online verfügbar und in allen Quell- und Binärarchiven enthalten. In den Versionshinweisen finden Sie Informationen zu neuen Funktionen, Einschränkungen und veralteten Versionen der neuesten Version. Weitere Details finden Sie in der Versionshistorie.
Der master
-Zweig ist der stabile Integrationszweig und sollte immer auf allen unterstützten Plattformen kompiliert und ausgeführt werden. Details neu hinzugefügter Funktionen können sich jedoch ändern, bis sie in eine Version aufgenommen werden. Neue Funktionen und viele Fehlerbehebungen bleiben in anderen Zweigen bestehen, bis sie stabil genug sind, um zusammengeführt zu werden.
Wenn Sie GLFW noch nicht kennen, ist das Tutorial für GLFW 3 möglicherweise hilfreich. Wenn Sie GLFW 2 in der Vergangenheit verwendet haben, gibt es einen Übergangsleitfaden für den Umstieg auf die GLFW 3-API.
GLFW existiert aufgrund der Beiträge vieler Menschen auf der ganzen Welt, sei es durch das Melden von Fehlern, die Bereitstellung von Community-Support, das Hinzufügen von Funktionen, das Überprüfen oder Testen von Code, das Debuggen, das Korrekturlesen von Dokumenten, das Vorschlagen von Funktionen oder das Beheben von Fehlern.
GLFW ist hauptsächlich in C99 geschrieben, wobei Teile der macOS-Unterstützung in Objective-C geschrieben sind. GLFW selbst benötigt nur die Header und Bibliotheken für Ihr Betriebssystem und Fenstersystem. Es sind keine zusätzlichen Header für Kontexterstellungs-APIs (WGL, GLX, EGL, NSGL, OSMesa) oder Rendering-APIs (OpenGL, OpenGL ES, Vulkan) erforderlich, um deren Unterstützung zu ermöglichen.
GLFW unterstützt die Kompilierung unter Windows mit Visual C++ 2013 und höher, MinGW und MinGW-w64, unter macOS mit Clang und unter Linux und anderen Unix-ähnlichen Systemen mit GCC und Clang. Es wird wahrscheinlich auch in anderen Umgebungen kompiliert, dies wird jedoch nicht regelmäßig getestet.
Für alle unterstützten Compiler unter Windows und macOS stehen vorkompilierte Binärdateien zur Verfügung.
Weitere Informationen zum Kompilieren von GLFW selbst finden Sie im Kompilierungsleitfaden.
In der Dokumentation finden Sie Tutorials, Anleitungen und die API-Referenz.
Weitere Informationen finden Sie im Beitragsleitfaden.
GLFW unterstützt Windows XP und höher sowie macOS 10.11 und höher. Linux und andere Unix-ähnliche Systeme, auf denen das X-Window-System ausgeführt wird, werden auch ohne Desktop-Umgebung oder moderne Erweiterungen unterstützt, obwohl einige Funktionen einen laufenden Fenster- oder Zwischenablage-Manager erfordern. Das OSMesa-Backend erfordert Mesa 6.3.
Weitere Informationen finden Sie im Kompatibilitätsleitfaden in der Dokumentation.
GLFW selbst benötigt nur CMake 3.16 oder höher sowie die Header und Bibliotheken für Ihr Betriebssystem und Fenstersystem.
Die Beispiele und Testprogramme basieren auf einer Reihe kleiner Bibliotheken. Diese befinden sich im Verzeichnis deps/
.
Die Dokumentation wird mit Doxygen generiert, wenn CMake dieses Tool finden kann.
Fehler werden an unseren Issue-Tracker gemeldet. Bitte lesen Sie im Beitragsleitfaden nach, was Sie bei der Meldung eines Fehlers angeben müssen.
GLFW_UNLIMITED_MOUSE_BUTTONS
hinzugefügt, der die Meldung von Maustasten ermöglicht, die über die Grenze der Maustasten-Tokens hinausgehen (#2423)QuartzCore
-Framework als Link-Zeit-Abhängigkeit hinzugefügtglfwInit
verursachte einen Segfault beim Compositor ohne Platz (#2517)VK_EXT_headless_surface
hinzugefügtEGL_MESA_platform_surfaceless
hinzugefügtGLFW_CONTEXT_CREATION_API
auf GLFW_NATIVE_CONTEXT_API
gesetzt (#2518) Auf glfw.org finden Sie die neueste Version von GLFW sowie Neuigkeiten, Dokumentationen und andere Informationen zum Projekt.
Wenn Sie Fragen zur Verwendung von GLFW haben, haben wir ein Forum.
Wenn Sie einen Fehler melden, einen Patch einreichen oder eine Funktion anfordern möchten, melden Sie diese bitte im Issue-Tracker auf GitHub.
Wenn Sie schließlich daran interessiert sind, bei der Entwicklung von GLFW mitzuhelfen oder es auf Ihre Lieblingsplattform zu portieren, besuchen Sie uns im Forum oder auf GitHub.