Add Pipelines::new

This commit is contained in:
Hanno Braun 2024-11-22 18:54:23 +01:00
parent 443492e9f0
commit 13b4d3d0aa
2 changed files with 23 additions and 17 deletions

View File

@ -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,

View File

@ -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 =