/* wearechat - generic multiplayer game with voip Copyright (C) 2025 metamuffin This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 of the License only. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ 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 } }