8个重大版本发布

0.10.0 2021年6月19日
0.8.0 2021年1月30日
0.7.0 2020年10月26日
0.4.0 2020年5月7日
0.1.0 2019年10月23日

#20 in #gfx

Download history 1465/week @ 2024-04-05 1920/week @ 2024-04-12 1788/week @ 2024-04-19 1795/week @ 2024-04-26 1549/week @ 2024-05-03 1474/week @ 2024-05-10 1710/week @ 2024-05-17 1689/week @ 2024-05-24 1913/week @ 2024-05-31 1101/week @ 2024-06-07 1469/week @ 2024-06-14 1612/week @ 2024-06-21 892/week @ 2024-06-28 384/week @ 2024-07-05 1283/week @ 2024-07-12 1536/week @ 2024-07-19

4,378 每月下载量
用于 4 crates

MIT/Apache

285KB
4K SLoC

Matrix room gfx-hal on crates.io Build Status
入门 | 文档 | 博客 | 资助

gfx-rs

gfx-rs是Rust中的低级、跨平台的图形和计算抽象库。它由以下组件组成

gfx-hal弃用

从v0.9版本开始,gfx-hal现在处于维护模式。gfx-hal的开发主要是由wgpu驱动的,它现在已经切换到自己的GPU抽象wgpu-hal。因此,gfx-hal的开发已经切换到仅维护模式,直到开发人员弄清楚gfx-portability的故事。更多关于过渡的信息请参见#3768

hal

  • gfx-hal,即gfx的硬件抽象层:一个Vulkan-ic主要不安全的API,它转换为本机图形后端。
  • gfx-backend-*,它包含各种平台的图形后端
  • gfx-warden 是一个数据驱动的参考测试框架,用于验证所有图形后端的兼容性。

gfx-rs 使用困难,建议用于对性能敏感的库和引擎。如果不是你的领域,可以看看 wgpu-rs,这是一个安全且简单的替代方案。

硬件抽象层

硬件抽象层 (HAL) 是一个薄薄的、低层的图形和计算层,它将 API 调用转换为各种后端,从而实现跨平台支持。这一层的 API 基于 Vulkan API,并进行了优化以更好地适应 Rust。

Hardware Abstraction Layer (HAL)

目前 HAL 支持Vulkan、DirectX 12/11、Metal、OpenGL/OpenGL ES/WebGL等后端。

HAL 层直接由用户应用程序或库使用。HAL 也被用于如 gfx-portability 等项目。

查看 Big Picture 博客文章以了解关联。

旧的 gfx

此存储库最初是 gfx 包的家,该包现已弃用。您可以在此存储库的 pre-ll 分支中找到该包的最新代码。

此存储库的 master 分支现在专注于开发 gfx-hal 及其相关的后端和辅助库,如上所述。 gfx-hal 是对 gfx 的完整重写,但它不一定是 gfx 的直接继任者。相反,它服务于与原始 gfx 包不同的目的,通过“低层”的方式。因此,gfx-hal 的原名是 ll,代表“低层”,而原始的 gfx 现在被称为 pre-ll

原始 gfx 的精神继任者是 wgpu,它位于与旧 gfx 包相似的水平上,但具有现代化的 API,更适合用于 Vulkan/DX12/Metal。如果您想要一个类似于旧 gfx 包且正在积极开发的库,那么 wgpu 可能是您需要的,而不是 gfx-hal

贡献

我们正在积极寻找新的贡献者,并致力于对任何感兴趣的人友好和有帮助!我们知道代码库一开始可能会因为其规模和深度而有些令人生畏,为此我们在问题跟踪器上有一个 标签,标记了适合新贡献者的问题,并在问题评论中提供了一些基本的完成方向。如果您对这些问题(或任何其他问题)有任何疑问,想要参与工作,请在 GitHub 上评论或在我们 Matrix 聊天 上发消息!

许可

此存储库的许可协议可以是以下两种中的任意一种:

由您选择。

除非您明确声明,否则根据 Apache-2.0 许可协议定义,您提交的任何有意包含在作品中的贡献,都将按上述方式双重许可,不附加任何额外条款或条件。

依赖关系

约 4.5–5.5MB
约 120K SLoC