diff options
| author | s-ol <s+removethis@s-ol.nu> | 2026-04-23 07:59:15 +0000 |
|---|---|---|
| committer | s-ol <s+removethis@s-ol.nu> | 2026-05-14 14:46:13 +0000 |
| commit | 083d289d2d7e807b28bf33d5e269d47e249d156a (patch) | |
| tree | 9caceace1c5101a04bb90d2e198be2ee0aa54b79 /src/bin | |
| parent | cargo fmt (diff) | |
| download | wgsl-view-083d289d2d7e807b28bf33d5e269d47e249d156a.tar.gz wgsl-view-083d289d2d7e807b28bf33d5e269d47e249d156a.zip | |
resource pools
Diffstat (limited to 'src/bin')
| -rw-r--r-- | src/bin/wgsl_render.rs | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/bin/wgsl_render.rs b/src/bin/wgsl_render.rs index 70f6904..2288366 100644 --- a/src/bin/wgsl_render.rs +++ b/src/bin/wgsl_render.rs @@ -77,24 +77,26 @@ fn main() { set_uniform(renderer.uniforms(), rest, args).map_err(|e| e.to_string()) } (["texture", id], [OscType::String(tsv_name)]) => { - renderer.create_texture_resource(&device, id, tsv_name); + renderer.uniforms().create_texture(&device, id, tsv_name); Ok(()) } (["sampler", id], [OscType::String(filter), OscType::String(clamp)]) => { let (filter_mode, address_mode) = parse_sampler_modes(filter, clamp)?; - renderer.create_sampler_resource(&device, id, filter_mode, address_mode); + renderer + .uniforms() + .create_sampler(&device, id, filter_mode, address_mode); Ok(()) } (["texture", id, "destroy"], []) => { - renderer.destroy_texture_resource(&device, id); + renderer.uniforms().destroy_texture(&device, id); Ok(()) } (["sampler", id, "destroy"], []) => { - renderer.destroy_sampler_resource(&device, id); + renderer.uniforms().destroy_sampler(&device, id); Ok(()) } (["binding", name], [OscType::String(target)]) => { - bind_resource(&mut renderer, &device, name, target) + bind_resource(renderer.uniforms(), &device, name, target) } _ => Err(format!("unhandled OSC message {} {:?}", msg.addr, msg.args)), } @@ -108,7 +110,7 @@ fn main() { }; if dirty { - renderer.refresh_textures(&device, &mut client, fence); + gpu::refresh_textures(renderer.uniforms(), &device, &mut client, fence); renderer.render(&device, &queue); device.poll(wgpu::PollType::wait_indefinitely()).unwrap(); @@ -213,16 +215,16 @@ fn parse_sampler_modes( } fn bind_resource( - renderer: &mut Renderer, + uniforms: &mut wgsl_view::uniform::UniformCache, device: &wgpu::Device, name: &str, target: &str, ) -> Result<(), String> { if let Some(id) = target.strip_prefix("/texture/") { - renderer.bind_texture_resource(device, name, id)?; + uniforms.bind_texture(device, name, id)?; Ok(()) } else if let Some(id) = target.strip_prefix("/sampler/") { - renderer.bind_sampler_resource(device, name, id)?; + uniforms.bind_sampler(device, name, id)?; Ok(()) } else { Err(format!("invalid binding target '{target}'")) |
