idk
This commit is contained in:
@@ -36,7 +36,7 @@ impl TestGame {
|
|||||||
fn update(self: &mut Self, renderer: &mut VulkanRenderer) {
|
fn update(self: &mut Self, renderer: &mut VulkanRenderer) {
|
||||||
self.input.frame_start();
|
self.input.frame_start();
|
||||||
|
|
||||||
let new_time = renderer.game_data.start_time.elapsed().unwrap().as_millis() as f32 / 1000.0;
|
let new_time = (renderer.game_data.start_time.elapsed().unwrap().as_micros() as f64 / 1000000.0) as f32;
|
||||||
let frame_time = new_time - renderer.game_data.push_constants.time;
|
let frame_time = new_time - renderer.game_data.push_constants.time;
|
||||||
renderer.game_data.push_constants.time = new_time;
|
renderer.game_data.push_constants.time = new_time;
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ impl TestGame {
|
|||||||
renderer.game_data.recreate_pipeline = true;
|
renderer.game_data.recreate_pipeline = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.input.button_just_pressed("print_framerate") {
|
if self.input.button_down("print_framerate") {
|
||||||
println!("{:.0} ms / {:.0} FPS", frame_time * 1000.0, 1.0 / frame_time);
|
println!("{:.0} ms / {:.0} FPS", frame_time * 1000.0, 1.0 / frame_time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -314,7 +314,10 @@ impl VulkanRenderer {
|
|||||||
Ok(r) => r,
|
Ok(r) => r,
|
||||||
// This error tends to happen when the user is manually resizing the window.
|
// This error tends to happen when the user is manually resizing the window.
|
||||||
// Simply restarting the loop is the easiest way to fix this issue.
|
// Simply restarting the loop is the easiest way to fix this issue.
|
||||||
Err(SwapchainCreationError::UnsupportedDimensions) => return RenderLoopResult::Reload,
|
Err(SwapchainCreationError::UnsupportedDimensions) => {
|
||||||
|
println!("Swapchain rejected: UnsupportedDimensions");
|
||||||
|
return RenderLoopResult::Reload;
|
||||||
|
}
|
||||||
Err(err) => panic!("{:?}", err),
|
Err(err) => panic!("{:?}", err),
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -353,13 +356,8 @@ impl VulkanRenderer {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let mut cbb = AutoCommandBufferBuilder::primary_one_time_submit(self.device.clone(), self.queue.family()).unwrap()
|
let mut cbb = AutoCommandBufferBuilder::primary_one_time_submit(self.device.clone(), self.queue.family()).unwrap()
|
||||||
// Before we can draw, we have to *enter a render pass*. There are two methods to do
|
|
||||||
// this: `draw_inline` and `draw_secondary`. The latter is a bit more advanced and is
|
|
||||||
// not covered here.
|
|
||||||
.begin_render_pass(self.framebuffers[image_num].clone(), false, vec![[0.0, 0.0, 0.0, 1.0].into(), ClearValue::Depth(1.0)]).unwrap();
|
.begin_render_pass(self.framebuffers[image_num].clone(), false, vec![[0.0, 0.0, 0.0, 1.0].into(), ClearValue::Depth(1.0)]).unwrap();
|
||||||
|
|
||||||
|
|
||||||
// We are now inside the first subpass of the render pass
|
|
||||||
for i in 0..self.game_data.game_objects.len() {
|
for i in 0..self.game_data.game_objects.len() {
|
||||||
let game_object = &self.game_data.game_objects[i];
|
let game_object = &self.game_data.game_objects[i];
|
||||||
let mesh = &self.game_data.meshes[game_object.mesh_index];
|
let mesh = &self.game_data.meshes[game_object.mesh_index];
|
||||||
@@ -371,10 +369,6 @@ impl VulkanRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cbb = cbb.draw(self.line_pipeline.clone(), &self.dynamic_state, vec![self.line_vertex_buffer.clone()], (), self.game_data.line_push_constants.clone()).unwrap()
|
cbb = cbb.draw(self.line_pipeline.clone(), &self.dynamic_state, vec![self.line_vertex_buffer.clone()], (), self.game_data.line_push_constants.clone()).unwrap()
|
||||||
|
|
||||||
// We leave the render pass by calling `draw_end`. Note that if we had multiple
|
|
||||||
// subpasses we could have called `next_inline` (or `next_secondary`) to jump to the
|
|
||||||
// next subpass.
|
|
||||||
.end_render_pass().unwrap();
|
.end_render_pass().unwrap();
|
||||||
|
|
||||||
let command_buffer = cbb.build().unwrap();
|
let command_buffer = cbb.build().unwrap();
|
||||||
@@ -389,6 +383,7 @@ impl VulkanRenderer {
|
|||||||
self.previous_frame_end = Some(Box::new(future) as Box<_>);
|
self.previous_frame_end = Some(Box::new(future) as Box<_>);
|
||||||
},
|
},
|
||||||
Err(FlushError::OutOfDate) => {
|
Err(FlushError::OutOfDate) => {
|
||||||
|
println!("Swapchain out of date!");
|
||||||
self.recreate_swapchain = true;
|
self.recreate_swapchain = true;
|
||||||
self.previous_frame_end = Some(Box::new(sync::now(self.device.clone())) as Box<_>);
|
self.previous_frame_end = Some(Box::new(sync::now(self.device.clone())) as Box<_>);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user