From 083d289d2d7e807b28bf33d5e269d47e249d156a Mon Sep 17 00:00:00 2001 From: s-ol Date: Thu, 23 Apr 2026 09:59:15 +0200 Subject: resource pools --- src/bin/wgsl_render.rs | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'src/bin') 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}'")) -- cgit v1.2.3