use crate::globaluniform::GlobalUniform; /// Basic wgsl preprocesser pub(crate) fn preprocess_shader( shader: &str, global_uniform: &GlobalUniform, global_uniform_group: u32, ) -> String { // Insert dynamically-generated global definitions let shader = shader.replace( "// INCLUDE: global uniform header", &global_uniform.shader_header(global_uniform_group), ); // Insert common functions let shader = shader.replace( "// INCLUDE: animate.wgsl", &include_str!(concat!( env!("CARGO_MANIFEST_DIR"), "/shaders/include/", "animate.wgsl" )), ); let shader = shader.replace( "// INCLUDE: anchor.wgsl", &include_str!(concat!( env!("CARGO_MANIFEST_DIR"), "/shaders/include/", "anchor.wgsl" )), ); return shader; }