学习Rust之认识gfx rs - mowatermelon/learn-rust GitHub Wiki

gfx-rs

基础介绍

gfx-rs是Rust中的一个低级跨平台图形抽象库。它由以下/组件组成

gfx-hal

这是gfx的硬件抽象层:一种Vulkan-ic,主要是unsafe的API,可转换为本机图形后端。

gfx-backend-*

其中包含各种平台的图形后端

gfx-warden

这是一个数据驱动的参考测试框架,用于验证所有图形后端的一致性。

学习网站推荐

gfx blog

image image

image

运行案例

执行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拥有VulkanDirectX 12MetalOpenGL / OpenGL ES / WebGL的后端。

HAL层由用户应用程序或库直接使用。 HAL还用于诸如gfx-portability之类的工作中。