GLFW 是一个用于 OpenGL、OpenGL ES 和 Vulkan 应用程序开发的开源多平台库。它提供了一个简单的、独立于平台的 API,用于创建窗口、上下文和表面、读取输入、处理事件等。
GLFW 原生支持 Windows、macOS 和 Linux 以及其他类 Unix 系统。 Linux 上同时支持 Wayland 和 X11。
GLFW 根据 zlib/libpng 许可证获得许可。
您可以下载最新的稳定版本作为源代码或 Windows 二进制文件。从 3.0 开始的每个版本都有一个相应的带注释的标签,其中包含源代码和二进制存档。
该文档可在线获取,并包含在所有源代码和二进制档案中。请参阅发行说明,了解最新版本中的新功能、警告和弃用内容。有关更多详细信息,请参阅版本历史记录。
master
分支是稳定的集成分支,应始终在所有支持的平台上编译和运行,尽管新添加的功能的详细信息可能会发生变化,直到它们包含在版本中。新功能和许多错误修复存在于其他分支中,直到它们足够稳定可以合并。
如果您是 GLFW 新手,您可能会发现 GLFW 3 教程很有用。如果您过去使用过 GLFW 2,可以查看迁移到 GLFW 3 API 的转换指南。
GLFW 的存在是因为世界各地许多人的贡献,无论是报告错误、提供社区支持、添加功能、审查或测试代码、调试、校对文档、建议功能还是修复错误。
GLFW 主要是用 C99 编写的,部分 macOS 支持是用 Objective-C 编写的。 GLFW 本身只需要操作系统和窗口系统的头文件和库。它不需要上下文创建 API(WGL、GLX、EGL、NSGL、OSMesa)或渲染 API(OpenGL、OpenGL ES、Vulkan)的任何附加标头来启用对它们的支持。
GLFW 支持在 Windows 上使用 Visual C++ 2013 及更高版本、MinGW 和 MinGW-w64 进行编译,在 macOS 上使用 Clang 进行编译,以及在 Linux 和其他类 Unix 系统上使用 GCC 和 Clang 进行编译。它也可能在其他环境中编译,但这没有定期测试。
Windows 和 macOS 上所有支持的编译器都有预编译的二进制文件。
有关如何自行编译 GLFW 的更多信息,请参阅编译指南。
请参阅教程、指南和 API 参考文档。
有关更多信息,请参阅贡献指南。
GLFW 支持 Windows XP 及更高版本以及 macOS 10.11 及更高版本。即使没有桌面环境或现代扩展,也支持运行 X Window 系统的 Linux 和其他类 Unix 系统,尽管某些功能需要运行窗口或剪贴板管理器。 OSMesa 后端需要 Mesa 6.3。
有关详细信息,请参阅文档中的兼容性指南。
GLFW 本身只需要 CMake 3.16 或更高版本以及操作系统和窗口系统的标头和库。
示例和测试程序依赖于许多小型库。它们位于deps/
目录中。
如果 CMake 可以找到该工具,则使用 Doxygen 生成该文档。
错误会报告给我们的问题跟踪器。请查看贡献指南,了解有关报告错误时应包含哪些内容的信息。
GLFW_UNLIMITED_MOUSE_BUTTONS
输入模式,允许报告超出鼠标按钮标记限制的鼠标按钮 (#2423)QuartzCore
框架作为链接时依赖项glfwInit
在没有座位的合成器上会出现段错误 (#2517)VK_EXT_headless_surface
添加了 Vulkan“窗口”表面创建EGL_MESA_platform_surfaceless
在 Mesa 上添加了 EGL 上下文创建GLFW_CONTEXT_CREATION_API
设置为GLFW_NATIVE_CONTEXT_API
(#2518) 在 glfw.org 上,您可以找到最新版本的 GLFW,以及有关该项目的新闻、文档和其他信息。
如果您对 GLFW 使用有疑问,我们有一个论坛。
如果您有要报告的错误、要提交的补丁或想要请求的功能,请将其归档到 GitHub 上的问题跟踪器中。
最后,如果您有兴趣帮助开发 GLFW 或将其移植到您喜欢的平台,请加入我们的论坛或 GitHub。