3个稳定版本
使用旧版Rust 2015
4.0.3+3.3.5 | 2023年1月2日 |
---|---|
4.0.1+3.3.5 | 2022年8月26日 |
4.0.0+3.3.5 | 2022年8月25日 |
432 在 图形API 中排名
161 每月下载量
在 3 个包中使用(通过 glfw-passthrough)
1MB
23K SLoC
GLFW
简介
GLFW是一个开源的多平台库,用于OpenGL、OpenGL ES和Vulkan应用程序开发。它提供了一个简单、平台无关的API来创建窗口、上下文和表面,读取输入,处理事件等。
GLFW原生支持Windows、macOS、Linux和其他类Unix系统。在Linux上,X11和Wayland都得到支持。
GLFW遵循zlib/libpng许可证。
您可以下载最新的稳定版本作为源代码或Windows可执行文件,或者从GitHub获取latest
分支。从3.0版本开始的每个发布版本都有一个相应的标注标签,其中包含源代码和二进制归档。
文档在线可用,并包含在所有源代码和二进制归档中。有关最新版本中的新功能、注意事项和弃用功能的详细信息,请参阅发行说明。更多信息请参阅版本历史。
master
分支是稳定集成分支,应该始终在所有支持的平台上进行编译和运行,尽管新添加的功能的详细信息可能会在它们被包含在发布版本中之前发生变化。新功能和许多错误修复存在于其他分支中,直到它们足够稳定以合并。
如果您是GLFW的新用户,您可能会发现教程对GLFW 3有用。如果您以前使用过GLFW 2,有一个迁移指南帮助您迁移到GLFW 3 API。
GLFW的存在得益于世界各地许多人的贡献,无论是通过报告错误、提供社区支持、增加功能、审查或测试代码、调试、校对文档、建议功能或修复错误。
编译GLFW
GLFW本身只需要您操作系统和窗口系统的头文件和库。它不需要任何上下文创建API(WGL、GLX、EGL、NSGL、OSMesa)或渲染API(OpenGL、OpenGL ES、Vulkan)的头文件来支持它们。
GLFW支持使用Visual C++ 2010及更高版本、MinGW和MinGW-w64在Windows上编译,使用Clang在macOS上编译,以及在Linux和其他类Unix系统上使用GCC和Clang编译。它可能在其他环境中也能编译,但这不是常规测试的范围。
为所有支持的编译器提供了预编译的Windows二进制文件。
有关如何自行编译GLFW的更多信息,请参阅编译指南。
使用GLFW
有关教程、指南和API参考,请参阅文档。
为GLFW做出贡献
有关更多信息,请参阅贡献指南。
系统要求
GLFW支持Windows XP及更高版本和macOS 10.8及更高版本。支持运行X Window System的Linux和其他类Unix系统,即使没有桌面环境或现代扩展也是如此,尽管某些功能需要运行中的窗口或剪贴板管理器。OSMesa后端需要Mesa 6.3。
有关更多信息,请参阅文档中的兼容性指南。
依赖关系
GLFW本身仅依赖于您窗口系统的头文件和库。
(实验性的)Wayland后端还依赖于用于生成Wayland协议头文件的extra-cmake-modules
包。
示例和测试程序依赖于许多小型库。这些库位于deps/
目录中。
- 用于具有命令行选项的示例的getopt_port
- 用于线程示例的TinyCThread
- 用于加载OpenGL和Vulkan函数的glad2
- 用于示例中的线性代数的linmath.h
- 用于测试和示例UI的Nuklear
- 用于将图像写入磁盘的stb_image_write
如果CMake可以找到该工具,则使用Doxygen生成文档。
报告错误
错误报告给我们的问题跟踪器。有关报告错误时应包含的信息,请参阅贡献指南。
变更日志
- 更新了来自上游的游戏手柄映射
- 错误修复:单缓冲窗口在创建时交换了缓冲区(#1873)
- 错误修复:由于不兼容的控制器共享硬件ID,游戏手柄映射更新可能导致
GLFW_INVALID_VALUE
消息过多(#1763) - 错误修复:用于上下文句柄的原生访问函数未检查API是否匹配
- [Win32] 错误修复:
USE_MSVC_RUNTIME_LIBRARY_DLL
对CMake 3.15或更高版本没有影响(#1783,#1796) - [Win32] 错误修复:使用LLVM为Windows编译失败(#1807,#1824,#1874)
- [Cocoa] 错误修复:MoltenVK层内容的比例仅在相关事件发出后才更新
- 【Cocoa】错误修复:程序性地移动光标会导致光标冻结一刹那(#1962)
- 【Cocoa】错误修复:在macOS 12.0中,
kIOMasterPortDefault
已被弃用(#1980) - 【X11】错误修复:更改
GLFW_FLOATING
可能导致内存泄漏 - 【Wayland】错误修复:某些键在Wayland中不重复(#1908)
- 【Wayland】错误修复:非箭头光标偏离热点位置(#1706,#1899)
- 【Wayland】错误修复:在FreeBSD上未定义
O_CLOEXEC
标志 - 【NSGL】错误修复:外部定义
GL_SILENCE_DEPRECATION
导致了重复定义警告(#1840) - 【EGL】错误修复:忽略了
GLFW_DOUBLEBUFFER
上下文属性(#1843)
联系方式
您可以在glfw.org找到GLFW的最新版本,以及新闻、文档和其他有关项目的信息。
如果您有关于GLFW使用的问题,我们有一个论坛,以及Libera.Chat上的#glfw
IRC频道。
如果您要报告错误、提交补丁或请求功能,请在GitHub上的问题跟踪器中提交。
最后,如果您有兴趣帮助GLFW的开发或将其移植到您喜欢的平台,请加入我们的论坛、GitHub或IRC。