wip: creating 3d texture node buffer

This commit is contained in:
Piotrek
2021-04-17 15:52:29 +02:00
parent 7a1821643c
commit 4f24394273
4 changed files with 93 additions and 3 deletions
+6 -2
View File
@@ -15,6 +15,7 @@ pub struct Renderer {
// Buffers
raster_buffer: RasterBuffer,
uniform_buffer: UniformBuffer,
node_buffer: NodeBuffer,
// Camera
pub camera: Camera,
}
@@ -105,13 +106,15 @@ impl Renderer {
// Buffers
let uniform_buffer = UniformBuffer::new(&device);
let raster_buffer = RasterBuffer::new(&device);
let mut node_buffer = NodeBuffer::new(&device, 2);
node_buffer.write(&queue);
// Pipeline
let pipeline = Self::create_pipeline(&device, &swapchain_desc, &[&uniform_buffer.bind_layout]);
let pipeline = Self::create_pipeline(&device, &swapchain_desc, &[&uniform_buffer.bind_layout, &node_buffer.bind_layout]);
// Save values in app
println!("Initialized");
Self { surface, device, queue, swapchain_desc, swapchain, pipeline, raster_buffer, uniform_buffer, camera }
Self { surface, device, queue, swapchain_desc, swapchain, pipeline, raster_buffer, uniform_buffer, node_buffer, camera }
}
pub fn resize(&mut self, new_size: Option<PhysicalSize<u32>>) {
@@ -158,6 +161,7 @@ impl Renderer {
// Data
render_pass.set_pipeline(&self.pipeline);
render_pass.set_bind_group(0, &self.uniform_buffer.bind_group, &[]);
render_pass.set_bind_group(1, &self.node_buffer.bind_group, &[]);
// Vertices and indices
render_pass.set_vertex_buffer(0, self.raster_buffer.vertex_buffer.slice(..));
render_pass.set_index_buffer(self.raster_buffer.index_buffer.slice(..), wgpu::IndexFormat::Uint16);