third_party_glfw:基于 OpenHarmony 的多平台图形应用开发库项目

Third-party open-source software glfw| 三方开源软件glfw

分支218Tags31
当前项目代码仓暂无内容

GLFW

构建状态 构建状态

简介

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

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 的更多信息,请参阅编译指南

使用 GLFW

有关教程、指南和 API 参考,请参见文档

为 GLFW 做贡献

有关更多信息,请参见贡献指南

系统要求

GLFW 支持 Windows XP 及更高版本,以及 macOS 10.11 及更高版本。运行 X Window System 的 Linux 和其他类 Unix 系统,即使没有桌面环境或现代扩展也能得到支持,不过部分功能需要运行窗口管理器或剪贴板管理器。OSMesa 后端需要 Mesa 6.3。

有关更多信息,请参见文档中的兼容性指南

依赖项

GLFW 本身仅需要 CMake 3.4 或更高版本,以及操作系统和窗口系统的头文件及库文件。

示例程序和测试程序依赖于多个小型库。这些库位于 deps/ 目录中。

如果 CMake 能找到 Doxygen 工具,则会使用该工具生成文档。

报告缺陷

缺陷请提交至我们的问题跟踪器。 报告缺陷时,请查阅贡献指南以了解需包含的信息。

自 3.4 版本以来的更新日志

  • 新增 GLFW_UNLIMITED_MOUSE_BUTTONS 输入模式,允许报告超出鼠标按钮令牌限制的鼠标按钮 (#2423)
  • [Cocoa] 新增 QuartzCore 框架作为链接时依赖项
  • [Cocoa] 移除对 OS X 10.10 Yosemite 及更早版本的支持 (#2506)
  • [Wayland] 缺陷修复:未销毁与分数缩放相关的对象
  • [Wayland] 缺陷修复:在没有 seat 的合成器上,glfwInit 会导致段错误 (#2517)
  • [Wayland] 缺陷修复:拖放操作进入非 GLFW 表面时可能导致段错误
  • [Wayland] 缺陷修复:中途读取数据提供失败时会发生内存泄漏
  • [Null] 通过 VK_EXT_headless_surface 新增 Vulkan “窗口” 表面创建功能
  • [Null] 通过 EGL_MESA_platform_surfaceless 在 Mesa 上新增 EGL 上下文创建功能
  • [EGL] 当 GLFW_CONTEXT_CREATION_API 设置为 GLFW_NATIVE_CONTEXT_API 时,允许在 Wayland 上进行原生访问 (#2518)

联系方式

glfw.org 上,您可以找到 GLFW 的最新版本,以及该项目的新闻、文档和其他信息。

如果您有与 GLFW 使用相关的问题,我们设有论坛

如果您要报告缺陷、提交补丁或请求功能,请在 GitHub 的问题跟踪器中提交。

最后,如果您有兴趣参与 GLFW 的开发或将其移植到您喜爱的平台,请加入我们的论坛或 GitHub。

项目介绍

Third-party open-source software glfw| 三方开源软件glfw

定制我的领域