/gfx

A high-performance, bindless graphics API for Rust.

Primary LanguageRustApache License 2.0Apache-2.0

Travis Build Status AppVeyor Build Status Gitter Chat
Documentation | Blog

gfx-rs

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.

pre-LL

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.

Features

Native API backends:

Usage

You can run the examples this way:

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.

License

This repository is currently in the process of being licensed under either of

at your option. Some parts of the repository are already licensed according to those terms. See the tracking issue.

Contributions

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.