This commit is contained in:
griffi-gh 2023-07-15 22:17:22 +02:00
parent 8b16081a68
commit 88a767368b

View file

@ -8,14 +8,20 @@ pub struct Shaders {
} }
macro_rules! shaders { macro_rules! shaders {
{$renderer: expr, $dir: literal, $($name: ident -> $path: literal),*} => { {($renderer: expr, $dir: literal), $($name: ident : $path: literal),*} => {
{ {
use super::Renderer; use super::Renderer;
let renderer: &Renderer = $renderer; let renderer: &Renderer = $renderer;
$({ $(
let _is_string_literal: &str = $path; let $name = {
renderer.device.create_shader_module(wgpu::include_wgsl!(concat!($dir, "/", $path))); let _is_string_literal: &str = $path;
})* let shader_descriptor = wgpu::include_wgsl!(concat!($dir, "/", $path));
renderer.device.create_shader_module(shader_descriptor)
};
)*
Shaders {
$($name,)*
}
} }
}; };
} }
@ -25,7 +31,7 @@ pub fn compile_shaders(
) { ) {
let renderer = &storages.borrow::<NonSendSync<UniqueView<Renderer>>>().unwrap(); let renderer = &storages.borrow::<NonSendSync<UniqueView<Renderer>>>().unwrap();
shaders! { shaders! {
renderer, "../../shaders", (renderer, "../../shaders"),
world -> "world.wgsl" world: "world.wgsl"
}; };
} }