diff --git a/experiments/2024-10-30/src/render/pipelines.rs b/experiments/2024-10-30/src/render/pipelines.rs index 01ff27948..36939db8c 100644 --- a/experiments/2024-10-30/src/render/pipelines.rs +++ b/experiments/2024-10-30/src/render/pipelines.rs @@ -8,6 +8,27 @@ pub struct Pipelines { pub triangles: Pipeline, } +impl Pipelines { + pub fn new( + device: &wgpu::Device, + config: &wgpu::SurfaceConfiguration, + uniforms: &wgpu::Buffer, + ) -> Self { + let vertices_shaders = Shaders::vertices(device, config); + let vertices_pipeline = + Pipeline::new(device, &vertices_shaders, uniforms); + + let triangles_shaders = Shaders::triangles(device, config); + let triangles_pipeline = + Pipeline::new(device, &triangles_shaders, uniforms); + + Self { + vertices: vertices_pipeline, + triangles: triangles_pipeline, + } + } +} + pub struct Pipeline { render_pipeline: wgpu::RenderPipeline, bind_group: wgpu::BindGroup, diff --git a/experiments/2024-10-30/src/render/renderer.rs b/experiments/2024-10-30/src/render/renderer.rs index 4e5e6d04f..e685d5009 100644 --- a/experiments/2024-10-30/src/render/renderer.rs +++ b/experiments/2024-10-30/src/render/renderer.rs @@ -7,11 +7,7 @@ use winit::window::Window; use crate::geometry::Operation; -use super::{ - geometry::Geometry, - pipelines::{Pipeline, Pipelines}, - shaders::{Shaders, Uniforms}, -}; +use super::{geometry::Geometry, pipelines::Pipelines, shaders::Uniforms}; pub struct Renderer { pub surface: wgpu::Surface<'static>, @@ -60,18 +56,7 @@ impl Renderer { usage: wgpu::BufferUsages::UNIFORM, }); - let vertices_shaders = Shaders::vertices(&device, &config); - let vertices_pipeline = - Pipeline::new(&device, &vertices_shaders, &uniforms); - - let triangles_shaders = Shaders::triangles(&device, &config); - let triangles_pipeline = - Pipeline::new(&device, &triangles_shaders, &uniforms); - - let pipelines = Pipelines { - vertices: vertices_pipeline, - triangles: triangles_pipeline, - }; + let pipelines = Pipelines::new(&device, &config, &uniforms); let depth_view = { let depth_texture =