Crates.io | glsl-to-spirv-macros |
lib.rs | glsl-to-spirv-macros |
version | 0.1.1 |
source | src |
created_at | 2017-06-18 16:08:12.101895 |
updated_at | 2017-08-02 14:52:22.704919 |
description | Macros 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 | |
repository | https://github.com/dylanede/glsl-to-spirv-macros |
max_upload_size | |
id | 19433 |
size | 20,451 |
[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.
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.
This library is licensed under either of
at your option.
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.