vulkano/vulkano
2016-02-20 14:40:50 +01:00
..
examples Descriptor sets are working 2016-02-20 14:40:50 +01:00
src Descriptor sets are working 2016-02-20 14:40:50 +01:00
.gitignore Initial wrapper 2016-02-18 09:33:06 +01:00
build.rs Draft for teapot example 2016-02-20 10:55:51 +01:00
Cargo.toml Initial wrapper 2016-02-18 09:33:06 +01:00
CONTRIBUTING.md Memory module now in acceptable state 2016-02-19 15:58:01 +01:00
README.md Initial wrapper 2016-02-18 09:33:06 +01:00

Vulkano

Safe Rust wrapper around Vulkan.

  • Much easier to use than raw Vulkan.

  • Any error that the validation layer would trigger is avoided in the first place. This is done through a lot of compile-time checks and a few runtime checks.

  • Anything that is possible to do with Vulkan should be possible with vulkano as well. Please open an issue if this is not the case.

  • Safety is favored over performances. In particular, compared to raw Vulkan vulkano does some runtime checks and wraps most objects around reference-counted pointers.

Usage

Add to your Cargo.toml:

vulkano = "0.1"

Note that this library doesn't handle creating and managing windows. In order to render to a window, you will have to create that window separately and use an unsafe function of this library to link to it.

This only concerns windows. Safe fullscreen rendering is possible with this library alone.

Shaders handling

The API of vulkano related to shader modules is entirely unsafe. This is because you're not supposed to use it directly.

Instead, you are encouraged to use the vulkano-shaders crate which compiles and analyses your shader, and generates Rust code that wraps around vulkano's API.

Thanks to this, vulkano can provide compile-time guarantees about your specialization constants, push constants, descriptor sets, vertex layouts, and so on.