This commit is contained in:
2021-01-31 02:08:53 -08:00
parent f44f8201b9
commit 3585c053ae
3 changed files with 49 additions and 34 deletions

View File

@@ -42,6 +42,7 @@ pub struct Pass {
}
pub struct Renderer {
device: Device,
lights_are_dirty: bool,
shadow_pass: Pass,
forward_pass: Pass,
@@ -77,8 +78,7 @@ impl Renderer {
impl Renderer {
pub fn create_buffer(&mut self,
device: &wgpu::Device,
pub fn create_buffer(device: &wgpu::Device,
indices: Vec<u32>,
vertices: Vec<Vertex>) -> (Rc<Buffer>, Rc<Buffer>) {
@@ -117,18 +117,27 @@ impl Renderer {
// });
// Creates the uniform for entities, which does the rotation and projection
(vertex_buf, index_buf)
}
pub fn load_mesh_to_buffer(device: &wgpu::Device, filepath: &str) -> (Rc<Buffer>, Rc<Buffer>) {
let (vertices, indices) = import_mesh(filepath);
Renderer::create_buffer(device, indices, vertices)
}
pub fn init(device: &wgpu::Device, sc_desc: &wgpu::SwapChainDescriptor) -> Renderer {
let entity_uniform_size = mem::size_of::<EntityUniforms>() as wgpu::BufferAddress;
self.plane_uniform_buf = device.create_buffer(&wgpu::BufferDescriptor {
let plane_uniform_buf = device.create_buffer(&wgpu::BufferDescriptor {
label: None,
size: entity_uniform_size,
usage: wgpu::BufferUsage::UNIFORM | wgpu::BufferUsage::COPY_DST,
mapped_at_creation: false,
});
(vertex_buf, index_buf)
}
pub fn init(device: &wgpu::Device, sc_desc: &wgpu::SwapChainDescriptor) -> Renderer {
// Pre init the light uniform, with slots enough for MAX_LIGHTS
let light_uniform_size =
@@ -460,11 +469,15 @@ impl Renderer {
});
Renderer {
device,
lights_are_dirty: false,
shadow_pass,
forward_pass,
forward_depth: depth_texture.create_view(&wgpu::TextureViewDescriptor::default()),
light_uniform_buf,
plane_uniform_buf,
plane_vertex_buf: (),
plane_index_buf: ()
}
}