1 个不稳定版本
使用旧的Rust 2015
0.1.0 | 2017年2月22日 |
---|
#41 在 #gfx
12KB
270 行
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之类的项目。
有关联接信息,请参阅Big Picture博客文章。
旧的gfx
存储库(pre-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 License,版本2.0(LICENSE-APACHE或http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可(LICENSE-MIT或http://opensource.org/licenses/MIT)
任选其一。
除非您明确声明,否则您有意提交以包含在作品中的任何贡献,根据Apache-2.0许可的定义,应按上述方式双许可,而不附加任何额外条款或条件。
依赖关系
~2.3–3MB
~58K SLoC