gfx-rs is a graphics abstraction library in Rust. It consists of the following layers/components:
gfx-hal
: hardware abstraction layer - a Vulkan-ic mostly unsafe API translating to native graphics backends.gfx-backend-*
: graphics backends for various platforms, include the windowing logic.gfx-warden
: data-driven reference test framework.
If you are looking for information about the released crates (gfx_core
, gfx
, gfx_device_*
, gfx_window_
, etc), they are being developed and published from the pre-ll branch. Code in master
is a complete rewrite that will be shipped in different crates.
Native API backends:
For Fedora
sudo dnf install -y libX11-devel vulkan
You can run the examples this way:
Note: dx12
works only in windows.
git clone https://github.com/gfx-rs/gfx
cd gfx/examples/hal
cargo run --bin quad --features vulkan
cargo run --bin compute --features dx12 1 2 3 4
The native API backend is selected by one of the features: vulkan
, dx12
, metal
, or gl
.
This repository is currently in the process of being licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option. Some parts of the repository are already licensed according to those terms. See the tracking issue.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.