Expand description
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.
Macros§
- glsl_cs
- Compiles a string containing a GLSL compute shader into SPIR-V binary data.
- glsl_fs
- Compiles a string containing a GLSL fragment shader into SPIR-V binary data.
- glsl_gs
- Compiles a string containing a GLSL geometry shader into SPIR-V binary data.
- glsl_
tcs - Compiles a string containing a GLSL tessellation control shader into SPIR-V binary data.
- glsl_
tes - Compiles a string containing a GLSL tessellation evaluation shader into SPIR-V binary data.
- glsl_vs
- Compiles a string containing a GLSL vertex shader into SPIR-V binary data.
- include_
glsl_ cs - Compiles the specified file (path relative to the crate root) containing a GLSL compute shader into SPIR-V binary data.
- include_
glsl_ fs - Compiles the specified file (path relative to the crate root) containing a GLSL fragment shader into SPIR-V binary data.
- include_
glsl_ gs - Compiles the specified file (path relative to the crate root) containing a GLSL geometry shader into SPIR-V binary data.
- include_
glsl_ tcs - Compiles the specified file (path relative to the crate root) containing a GLSL tessellation control shader into SPIR-V binary data.
- include_
glsl_ tes - Compiles the specified file (path relative to the crate root) containing a GLSL tessellation evaluation shader into SPIR-V binary data.
- include_
glsl_ vs - Compiles the specified file (path relative to the crate root) containing a GLSL vertex shader into SPIR-V binary data.