diff options
author | metamuffin <metamuffin@disroot.org> | 2025-01-22 00:23:58 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-01-22 00:23:58 +0100 |
commit | 0612ce58890741428f10c73a63bcb417dcd43a9f (patch) | |
tree | a06a6d180722cc3adc35d6a8e30789773b56d508 /client/src/shaders/mod.rs | |
parent | 13eb6abfe0e766e432a2f08d58fa9f5a6c5026e7 (diff) | |
download | weareserver-0612ce58890741428f10c73a63bcb417dcd43a9f.tar weareserver-0612ce58890741428f10c73a63bcb417dcd43a9f.tar.bz2 weareserver-0612ce58890741428f10c73a63bcb417dcd43a9f.tar.zst |
generalize pipeline configuration in preparation for skinning
Diffstat (limited to 'client/src/shaders/mod.rs')
-rw-r--r-- | client/src/shaders/mod.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/client/src/shaders/mod.rs b/client/src/shaders/mod.rs new file mode 100644 index 0000000..42b2164 --- /dev/null +++ b/client/src/shaders/mod.rs @@ -0,0 +1,21 @@ +use log::info; +use wgpu::{Device, ShaderModule, include_wgsl}; + +pub struct SceneShaders { + pub fragment_pbr: ShaderModule, + pub vertex_world: ShaderModule, + pub vertex_world_skin: ShaderModule, +} + +impl SceneShaders { + pub fn load(device: &Device) -> Self { + info!("compiling shaders..."); + let s = Self { + fragment_pbr: device.create_shader_module(include_wgsl!("fragment_pbr.wgsl")), + vertex_world: device.create_shader_module(include_wgsl!("vertex_world.wgsl")), + vertex_world_skin: device.create_shader_module(include_wgsl!("vertex_world_skin.wgsl")), + }; + info!("done"); + s + } +} |