glsl-to-spirv-macros

Crates.ioglsl-to-spirv-macros
lib.rsglsl-to-spirv-macros
version0.1.1
sourcesrc
created_at2017-06-18 16:08:12.101895
updated_at2017-08-02 14:52:22.704919
descriptionMacros for generating SPIR-V shader binaries from GLSL at compile time for use with Vulkan. To use this crate, you must also use the glsl-to-spirv-macros-impl crate.
homepage
repositoryhttps://github.com/dylanede/glsl-to-spirv-macros
max_upload_size
id19433
size20,451
Dylan Ede (dylanede)

documentation

https://docs.rs/glsl-to-spirv-macros

README

glsl-to-spirv-macros

Documentation

[dependencies]
glsl-to-spirv-macros = "0.1.1"
glsl-to-spirv-macros-impl = "0.1.0"

Rust macros for generating SPIR-V binaries at compile time for use with Vulkan.

To use this crate, you must also use the glsl-to-spirv-macros-impl crate.

Documentation

Use this crate to compile your GLSL shaders at compile time into binaries embedded in your program.

This crate requires you to also use the glsl-to-spirv-macros-impl crate. Without it these macros will not work. Unfortunately it is not yet possible to combine the two crates into one.

Example usage:

#[macro_use] extern crate glsl_to_spirv_macros;
#[macro_use] extern crate glsl_to_spirv_macros_impl;

static some_shader: &'static [u8] = glsl_vs!{r#"
    // Shader code here
"#};

fn main() {
    let another_shader = include_glsl_fs!("path/to/shader");
}

All macros in this crate return &'static [u8], and can be used in the definition of static as well as local variables. Every macro takes a string literal, e.g. "...", r#"..."# etc.

These macros generate Vulkan-compatible SPIR-V binaries using the official glslang compiler - they are not designed for use with other APIs, like OpenCL.

License

This library is licensed under either of

at your option.

Contribution

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.

Commit count: 8

cargo fmt