diff options
Diffstat (limited to 'src/renderer.rs')
| -rw-r--r-- | src/renderer.rs | 75 |
1 files changed, 2 insertions, 73 deletions
diff --git a/src/renderer.rs b/src/renderer.rs index 3717945..155c318 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -1,5 +1,4 @@ -use crate::gpu; -use crate::uniform::{ResourcePools, UniformCache}; +use crate::uniform::UniformCache; const CANVAS_FORMAT: wgpu::TextureFormat = wgpu::TextureFormat::Rgba8UnormSrgb; @@ -38,7 +37,6 @@ pub struct Renderer { vertex_bgl: wgpu::BindGroupLayout, vertex_bg: wgpu::BindGroup, render_pipeline: wgpu::RenderPipeline, - resources: ResourcePools, uniforms: UniformCache, } @@ -103,14 +101,12 @@ impl Renderer { bytemuck::cast_slice(&[width as f32, height as f32]), ); - let resources = ResourcePools::new(); let mut uniforms = UniformCache::new(); let render_pipeline = build_pipeline( device, &vertex_module, &vertex_bgl, DEFAULT_FRAGMENT, - &resources, &mut uniforms, ) .expect("default shader"); @@ -122,7 +118,6 @@ impl Renderer { vertex_bgl, vertex_bg, render_pipeline, - resources, uniforms, } } @@ -145,7 +140,6 @@ impl Renderer { &self.vertex_module, &self.vertex_bgl, source, - &self.resources, &mut self.uniforms, )?; self.render_pipeline = pipeline; @@ -153,70 +147,6 @@ impl Renderer { Ok(()) } - pub fn create_texture_resource(&mut self, device: &wgpu::Device, id: &str, tsv_name: &str) { - self.resources.create_texture(device, id, tsv_name); - self.uniforms.rebuild_bind_group(device, &self.resources); - } - - pub fn destroy_texture_resource(&mut self, device: &wgpu::Device, id: &str) { - let removed = self.resources.destroy_texture(id); - let unbound = self.uniforms.unbind_texture_resource(id); - if removed || unbound { - self.uniforms.rebuild_bind_group(device, &self.resources); - } - } - - pub fn create_sampler_resource( - &mut self, - device: &wgpu::Device, - id: &str, - filter: wgpu::FilterMode, - address_mode: wgpu::AddressMode, - ) { - self.resources - .create_sampler(device, id, filter, address_mode); - self.uniforms.rebuild_bind_group(device, &self.resources); - } - - pub fn destroy_sampler_resource(&mut self, device: &wgpu::Device, id: &str) { - let removed = self.resources.destroy_sampler(id); - let unbound = self.uniforms.unbind_sampler_resource(id); - if removed || unbound { - self.uniforms.rebuild_bind_group(device, &self.resources); - } - } - - pub fn bind_texture_resource( - &mut self, - device: &wgpu::Device, - name: &str, - id: &str, - ) -> Result<(), String> { - self.uniforms - .bind_texture_resource(device, &self.resources, name, id) - } - - pub fn bind_sampler_resource( - &mut self, - device: &wgpu::Device, - name: &str, - id: &str, - ) -> Result<(), String> { - self.uniforms - .bind_sampler_resource(device, &self.resources, name, id) - } - - pub fn refresh_textures( - &mut self, - device: &wgpu::Device, - client: &mut texture_share_vk_client::VkClient, - fence: ash::vk::Fence, - ) { - if gpu::refresh_textures(&mut self.resources, device, client, fence) { - self.uniforms.rebuild_bind_group(device, &self.resources); - } - } - pub fn render(&mut self, device: &wgpu::Device, queue: &wgpu::Queue) { self.uniforms.flush(queue); @@ -258,7 +188,6 @@ fn build_pipeline( vertex_module: &wgpu::ShaderModule, vertex_bgl: &wgpu::BindGroupLayout, fragment_source: &str, - resources: &ResourcePools, cache: &mut UniformCache, ) -> Result<wgpu::RenderPipeline, String> { let module = naga::front::wgsl::parse_str(fragment_source) @@ -272,7 +201,7 @@ fn build_pipeline( .map_err(|e| format!("WGSL validation error: {e}"))?; cache.refresh(module, device); - cache.rebuild_bind_group(device, resources); + cache.rebuild_bind_group(device); let fragment_module = device.create_shader_module(wgpu::ShaderModuleDescriptor { label: Some("fragment_shader"), |
