学习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之类的工作中。