11个版本
使用旧的Rust 2015
0.2.1 | 2017年3月12日 |
---|---|
0.2.0 | 2017年3月8日 |
0.1.10 | 2015年3月26日 |
0.1.6 | 2015年2月14日 |
#32 in #metal
875 每月下载量
用于 2 crate
4KB
67 行
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为主的多数不安全的API,将其转换为原生图形后端。gfx-backend-*
,包含各种平台的图形后端- Vulkan(在Linux、Windows和Android上运行)
- DirectX 12 和 DirectX 11
- Metal (运行在 macOS 和 iOS 上)
- OpenGL ES3 (运行在 Linux/BSD、Android 和 WASM/WebGL2 上)
gfx-warden
,这是一个数据驱动的参考测试框架,用于验证所有图形后端的一致性。
gfx-rs 难以使用,建议用于对性能敏感的库和引擎。如果您不在这个领域,请查看 wgpu-rs 以获取安全简单的替代方案。
硬件抽象层
硬件抽象层(HAL)是一个薄薄的、低级的图形和计算层,它将 API 调用转换为各种后端,从而实现跨平台支持。该层的 API 基于 Vulkan API,并进行了调整以更加适合 Rust。
目前 HAL 支持后端有 Vulkan、DirectX 12/11、Metal、以及 OpenGL/OpenGL ES/WebGL。
HAL 层直接由用户应用程序或库使用。HAL 也用于如 gfx-portability 这样的努力中。
有关联系,请参阅 Big Picture 博客文章。
旧的 gfx
软件包(ll 之前)
此存储库最初是 gfx
软件包的家园,该软件包现在已弃用。您可以在本存储库的 pre-ll
分支中找到该软件包的最新代码。
此存储库的主分支现在专注于开发 gfx-hal
及其相关的后端和辅助库,如上所述。gfx-hal
是对 gfx
的完全重写,但它不一定直接继承自 gfx
。相反,它服务于与原始的 gfx
软件包不同的目的,通过“更低级别”来发挥作用。因此,gfx-hal
的原始名称是 ll
,代表“更低级别”,而原始的 gfx
现在被称为 pre-ll
。
原始 gfx
的精神继承者是 wgpu
,它与旧的 gfx
软件包位于相同的抽象级别,但具有更适合用于 Vulkan/DX12/Metal 的现代化 API。如果您想要类似旧的 gfx
软件包且正在积极开发的软件包,wgpu
可能是您要寻找的,而不是 gfx-hal
。
贡献
我们正在积极寻找新的贡献者,并致力于欢迎和帮助任何感兴趣的人!我们知道代码库的规模和深度一开始可能会有些令人生畏,为此,我们在问题跟踪器上有一个 标签,标记了那些对新贡献者友好且在问题注释中提供了一些基本完成方向的议题。如果您对任何这些问题(或任何其他问题)有任何疑问,想要工作,请在 GitHub 上评论或在我们 Matrix 聊天 上发消息!
许可证
此存储库的许可证是以下之一
- Apache License,版本 2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- 麻省理工学院许可证(《LICENSE-MIT》或http://opensource.org/licenses/MIT)
由您选择。
除非您明确说明,否则根据Apache-2.0许可证定义的,您有意提交以包含在工作中的任何贡献,将如上所述双重许可,不附加任何额外条款或条件。
依赖项
~1.5MB
~41K SLoC