5个版本 (重大更新)
使用旧的Rust 2015
0.6.0 | 2018年4月16日 |
---|---|
0.4.0 | 2017年12月30日 |
0.3.0 | 2017年6月30日 |
0.2.0 | 2017年4月22日 |
0.1.0 | 2017年2月22日 |
#26 in #metal
285KB
5.5K SLoC
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-*
,它包含各种平台上的图形后端- 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之类的努力中。
有关关联性的更多信息,请参阅大图景博客文章。
旧的gfx
crate(ll之前)
此存储库最初是gfx
crate的家园,该crate现已弃用。您可以在本存储库的pre-ll
分支中找到该crate的最新代码版本。
此存储库的master分支现在专注于开发gfx-hal
及其关联的后端和辅助库,如上所述。gfx-hal
是gfx
的完整重写,但它不一定是gfx
的直接继任者。相反,它具有与原始gfx
crate不同的用途,因为它比原始的更低级。因此,gfx-hal
的原名为ll
,代表“更低级”,而原始的gfx
现在被称为pre-ll
。
原始gfx
的精神继承者是wgpu
,它与旧的gfx
crate处于相同的抽象级别,但具有更现代化的API,更适合在Vulkan/DX12/Metal上使用。如果您想要类似旧gfx
crate且正在积极开发的东西,那么wgpu
可能是您要找的,而不是gfx-hal
。
贡献
我们正在积极寻找新的贡献者,并致力于对任何感兴趣的人友好和有帮助!我们知道代码库在开始时可能有点令人畏惧其大小和深度,为此我们在问题跟踪器上有一个标签,用于标记对新贡献者友好且在问题注释中具有一些基本完成方向的议题。如果您对任何这些问题(或任何其他问题)有任何疑问,您可能想要处理,请通过GitHub评论或在我们的Matrix聊天中发消息!
许可协议
此存储库受以下任一许可协议的许可:
- Apache License,版本2.0,(LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可(LICENSE-MIT或http://opensource.org/licenses/MIT)
任选其一。
除非您明确声明,否则根据Apache-2.0许可协议定义的,您有意提交以包含在您的工作中的任何贡献,都将如上所述双重许可,而无需任何附加条款或条件。
依赖关系
~5-14MB
~199K SLoC