summaryrefslogtreecommitdiffstats
path: root/src/renderer.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/renderer.rs')
-rw-r--r--src/renderer.rs75
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"),