readme and first steps for storage buffer raytracing
This commit is contained in:
parent
912659bb52
commit
534f1a109a
7 changed files with 424 additions and 44 deletions
src
26
src/main.rs
26
src/main.rs
|
@ -111,7 +111,11 @@ fn main() -> Result<()> {
|
|||
app.cam_angle_y = app.cam_angle_y.max(-90.0).min(90.0);
|
||||
}
|
||||
|
||||
window.set_cursor_position(LogicalPosition::new(window.inner_size().width / 2, window.inner_size().height / 2)).expect("Cannot set Cursor!");
|
||||
let cursor_res = window.set_cursor_position(LogicalPosition::new(window.inner_size().width / 2, window.inner_size().height / 2));
|
||||
if cursor_res.is_err() {
|
||||
println!("Attempted to move cursor while not in possession")
|
||||
}
|
||||
|
||||
app.last_pos = LogicalPosition::new(window.inner_size().width as f32 / 2 as f32, window.inner_size().height as f32 / 2 as f32);
|
||||
},
|
||||
WindowEvent::KeyboardInput { device_id, event, is_synthetic } => {
|
||||
|
@ -192,6 +196,7 @@ impl App {
|
|||
scene_handler.prepare_data(&instance, &device, &data)?;
|
||||
|
||||
buffer::create_uniform_buffers(&instance, &device, &mut data)?;
|
||||
buffer::create_storage_buffers(&instance, &device, &mut data)?;
|
||||
buffer::create_descriptor_pool(&device, &mut data)?;
|
||||
buffer::create_descriptor_sets(&device, &mut data)?;
|
||||
|
||||
|
@ -321,6 +326,7 @@ impl App {
|
|||
depth_buffer::create_depth_objects(&self.instance, &self.device, &mut self.data)?;
|
||||
create_framebuffers(&self.device, &mut self.data)?;
|
||||
buffer::create_uniform_buffers(&self.instance, &self.device, &mut self.data)?;
|
||||
buffer::create_storage_buffers(&self.instance, &self.device, &mut self.data)?;
|
||||
buffer::create_descriptor_sets(&self.device, &mut self.data)?;
|
||||
command_buffer::create_command_buffers(&self.device, &mut self.data, &self.scene_handler)?;
|
||||
self.data
|
||||
|
@ -346,6 +352,13 @@ impl App {
|
|||
self.data.uniform_buffers_memory
|
||||
.iter()
|
||||
.for_each(|m| self.device.free_memory(*m, None));
|
||||
self.data.storage_buffers
|
||||
.iter()
|
||||
.for_each(|b| self.device.destroy_buffer(*b, None));
|
||||
self.data.storage_buffers_memory
|
||||
.iter()
|
||||
.for_each(|m| self.device.free_memory(*m, None));
|
||||
|
||||
self.data.framebuffers
|
||||
.iter()
|
||||
.for_each(|f| self.device.destroy_framebuffer(*f, None));
|
||||
|
@ -411,6 +424,17 @@ impl App {
|
|||
|
||||
self.device.unmap_memory(self.data.uniform_buffers_memory[image_index]);
|
||||
|
||||
let memory = self.device.map_memory(
|
||||
self.data.storage_buffers_memory[image_index],
|
||||
0,
|
||||
size_of::<buffer::UniformBufferObject>() as u64,
|
||||
vk::MemoryMapFlags::empty(),
|
||||
)?;
|
||||
|
||||
memcpy(&ubo, memory.cast(), 1);
|
||||
|
||||
self.device.unmap_memory(self.data.storage_buffers_memory[image_index]);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue