8个重大版本发布

使用旧Rust 2015

0.9.1 2019年4月25日
0.9.0 2019年2月12日
0.8.0 2017年12月30日
0.7.0 2017年10月19日
0.1.0 2016年3月31日

#25 in #gfx

Download history 294/week @ 2024-03-13 383/week @ 2024-03-20 388/week @ 2024-03-27 367/week @ 2024-04-03 304/week @ 2024-04-10 370/week @ 2024-04-17 409/week @ 2024-04-24 319/week @ 2024-05-01 334/week @ 2024-05-08 337/week @ 2024-05-15 369/week @ 2024-05-22 372/week @ 2024-05-29 283/week @ 2024-06-05 237/week @ 2024-06-12 316/week @ 2024-06-19 263/week @ 2024-06-26

1,161 每月下载量
gfx_app中使用

Apache-2.0

500KB
10K SLoC

Matrix room gfx-hal on crates.io Build Status
入门 | 文档 | 博客 | 资金

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-*,它包含各种平台的图形后端
  • gfx-warden是一个数据驱动的参考测试框架,用于验证所有图形后端的一致性。

gfx-rs 难以使用,建议用于性能敏感的库和引擎。如果不是您的领域,请查看wgpu-rs,它提供了一个安全简单的替代方案。

硬件抽象层

硬件抽象层(HAL)是一个薄薄的、低级的图形和计算层,它将API调用转换为各种后端,从而实现了跨平台支持。该层的API基于Vulkan API,并进行了调整以更适合Rust。

Hardware Abstraction Layer (HAL)

目前HAL支持Vulkan、DirectX 12/11、Metal以及OpenGL/OpenGL ES/WebGL的后端。

HAL层直接由用户应用程序或库使用。HAL还用于如gfx-portability等努力。

请参阅大图景博客文章以了解关联。

旧的gfx包(pre-ll)

此存储库最初是gfx包的家园,现在已被弃用。您可以在本存储库的pre-ll分支中找到该包的最新代码。

此存储库的master分支现在专注于开发gfx-hal及其相关后端和辅助库,如上所述。gfx-halgfx的完整重写,但它不一定直接继承自gfx。相反,它具有与原始gfx包不同的用途,因为它比原始包“更底层”。因此,gfx-hal的原名为ll,代表“更低层”,而原始的gfx现在被称为pre-ll

原始gfx的精神继承者是wgpu,它与旧gfx包处于类似的抽象级别,但具有更适合在Vulkan/DX12/Metal上使用的现代化API。如果您想要一个类似旧gfx包且正在积极开发的库,那么wgpu可能是您想要的,而不是gfx-hal

贡献

我们正在积极寻找新的贡献者,并致力于对任何感兴趣的人友好并给予帮助!我们知道代码库在开始时可能会因规模和深度而显得有些令人生畏,为此我们在问题跟踪器上有一个标签,标记了新贡献者友好且在问题评论中提供了一些基本完成方向的待办事项。如果您对这些问题(或任何其他问题)有任何疑问,希望进行工作,请评论GitHub并在我们的Matrix聊天中发消息!

许可证

此存储库的许可证可以是以下之一

任选其一。

除非您明确说明,否则您根据Apache-2.0许可证定义的,有意提交供作品包含的任何贡献,将按上述方式双重许可,不附加任何额外条款或条件。

依赖项

~17MB
~361K SLoC