学习Rust之认识gfx rs - mowatermelon/learn-rust GitHub Wiki
gfx-rs
基础介绍
gfx-rs是Rust中的一个低级跨平台图形抽象库。它由以下层/组件组成
gfx-hal
这是gfx的硬件抽象层:一种Vulkan-ic,主要是unsafe的API,可转换为本机图形后端。
gfx-backend-*
其中包含各种平台的图形后端
gfx-warden
这是一个数据驱动的参考测试框架,用于验证所有图形后端的一致性。
学习网站推荐



运行案例
执行cargo run,并通过--features {backend}指明当前绘制后端,注意绘制后端的备选值只有vulkan, dx12, dx11, metal, or gl。
在假定你已经安装了所有的图形后端的必要依赖项,可以执行下面的案例代码,分别运行不同后端渲染案例。有关安装和使用的更多信息,请参阅入门指南。
git clone https://github.com/gfx-rs/gfx
cd gfx/examples
# macOS
cargo run --bin quad --features metal
# vulkan
cargo run --bin quad --features vulkan
# Windows
cargo run --bin compute --features dx12 1 2 3 4
这将使用Vulkan后端运行quad示例,然后使用DirectX 12后端运行计算示例。
硬件抽象层
硬件抽象层(HAL)是一个精简的低级图形层,可将API调用转换为各种图形后端,从而实现跨平台支持。
该层的API基于Vulkan API,适用于更加Rust-friendly。
目前,HAL拥有Vulkan,DirectX 12,Metal和OpenGL / OpenGL ES / WebGL的后端。
HAL层由用户应用程序或库直接使用。 HAL还用于诸如gfx-portability之类的工作中。