Function wgsl_to_wgpu::create_shader_module
source · pub fn create_shader_module(
wgsl_source: &str,
wgsl_include_path: &str,
options: WriteOptions
) -> Result<String, CreateModuleError>
Expand description
Generates a Rust module for a WGSL shader included via include_str.
The wgsl_include_path
should be a valid input to include_str in the generated file’s location.
The included contents should be identical to wgsl_source
.
§Examples
This function is intended to be called at build time such as in a build script.
// build.rs
fn main() {
println!("cargo:rerun-if-changed=src/shader.wgsl");
// Read the shader source file.
let wgsl_source = std::fs::read_to_string("src/shader.wgsl").unwrap();
// Configure the output based on the dependencies for the project.
let options = wgsl_to_wgpu::WriteOptions {
derive_bytemuck_vertex: true,
derive_encase_host_shareable: true,
matrix_vector_types: wgsl_to_wgpu::MatrixVectorTypes::Glam,
..Default::default()
};
// Generate the bindings.
let text = wgsl_to_wgpu::create_shader_module(&wgsl_source, "shader.wgsl", options).unwrap();
std::fs::write("src/shader.rs", text.as_bytes()).unwrap();
}