21个版本
使用旧的Rust 2015
0.9.2 | 2019年10月3日 |
---|---|
0.9.1 | 2019年4月25日 |
0.9.0 |
|
0.8.3 | 2018年10月1日 |
0.2.0 | 2016年3月22日 |
#18 in #gfx-hal
10,934每月下载量
在 155 个crate中(24直接)使用
165KB
3K 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的家,现在已被弃用。您可以在本存储库的pre-ll
分支中找到该crate的最新代码。
本存储库的master分支现在专注于开发gfx-hal
以及上述相关后端和辅助库。 gfx-hal
是gfx
的重写,但它不一定是gfx
的直接继任者。相反,它服务于与原始gfx
crate不同的目的,因为它的“层级”比原始的更低。因此,gfx-hal
的原名是ll
,代表“低级”,而原始的gfx
现在被称为pre-ll
。
原始gfx
的精神继任者是wgpu
,它处于与旧gfx
crate相似的抽象级别,但具有更适合在Vulkan/DX12/Metal上使用的现代化API。如果您正在寻找类似旧gfx
crate且正在积极开发的项目,那么wgpu
可能是您想要的,而不是gfx-hal
。
贡献
我们正在积极寻找新的贡献者,并致力于欢迎并帮助任何对此感兴趣的人!我们知道代码库在开始时可能会因为规模和深度而让人感到有些畏惧,为此,我们在问题跟踪器上有一个标签,它标记了新贡献者友好且在问题评论中有一些基本完成方向的issue。如果您对这些issue(或任何其他issue)有任何疑问,您想在GitHub上评论,或者在我们的Matrix聊天上留言!
许可
本存储库的许可为以下之一
- Apache License,版本2.0,(LICENSE-APACHE或http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可(LICENSE-MIT或http://opensource.org/licenses/MIT)
任选其一。
除非您明确表示,否则根据Apache-2.0许可证定义,您有意提交的工作内容将双重授权,如上所述,不附加任何额外条款或条件。
依赖项
~140–385KB