1 个不稳定版本
0.0.1 | 2021 年 6 月 19 日 |
---|
#44 在 #gfx 中
1,174 每月下载量
用于 27 个 crates (通过 gfx-hal)
34KB
552 行
gfx-rs
gfx-rs 是一个用于 Rust 的底层、跨平台的图形和计算抽象库。它由以下组件组成:
gfx-hal 弃用
从 v0.9 版本开始,gfx-hal 已进入维护模式。gfx-hal 的开发主要是由 wgpu 驱动的,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等努力中。
有关关联,请参阅整体架构博客文章。
旧的gfx
包(ll之前)
这个存储库最初是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版本(LICENSE-APACHE或http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
由您选择。
除非您明确表示,否则,根据Apache-2.0许可证的定义,您有意提交以包含在作品中并由您提交的任何贡献,将按上述方式双重许可,不附加任何其他条款或条件。
依赖关系
~0.5–1.2MB
~27K SLoC