Skip to content

Commit

Permalink
fix wgpu-hal/examples/halmark/main.rs
Browse files Browse the repository at this point in the history
  • Loading branch information
TornaxO7 committed Oct 23, 2023
1 parent 025b20b commit 76d3175
Showing 1 changed file with 52 additions and 49 deletions.
101 changes: 52 additions & 49 deletions wgpu-hal/examples/halmark/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ use hal::{
Adapter as _, CommandEncoder as _, Device as _, Instance as _, Queue as _, Surface as _,
};
use raw_window_handle::{HasDisplayHandle, HasWindowHandle};
use winit::{
event::{ElementState, Event, KeyEvent, WindowEvent},
event_loop::ControlFlow,
keyboard::{Key, NamedKey},
};

use std::{
borrow::{Borrow, Cow},
Expand Down Expand Up @@ -567,10 +572,10 @@ impl<A: hal::Api> Example<A> {

fn update(&mut self, event: winit::event::WindowEvent) {
if let winit::event::WindowEvent::KeyboardInput {
input:
winit::event::KeyboardInput {
virtual_keycode: Some(winit::event::VirtualKeyCode::Space),
state: winit::event::ElementState::Pressed,
event:
KeyEvent {
logical_key: Key::Named(NamedKey::Space),
state: ElementState::Pressed,
..
},
..
Expand Down Expand Up @@ -781,7 +786,7 @@ cfg_if::cfg_if! {
fn main() {
env_logger::init();

let event_loop = winit::event_loop::EventLoop::new();
let event_loop = winit::event_loop::EventLoop::new().unwrap();
let window = winit::window::WindowBuilder::new()
.with_title("hal-bunnymark")
.build(&event_loop)
Expand All @@ -793,51 +798,49 @@ fn main() {
let mut last_frame_inst = Instant::now();
let (mut frame_count, mut accum_time) = (0, 0.0);

event_loop.run(move |event, _, control_flow| {
let _ = &window; // force ownership by the closure
*control_flow = winit::event_loop::ControlFlow::Poll;
match event {
winit::event::Event::RedrawEventsCleared => {
window.request_redraw();
}
winit::event::Event::WindowEvent { event, .. } => match event {
winit::event::WindowEvent::KeyboardInput {
input:
winit::event::KeyboardInput {
virtual_keycode: Some(winit::event::VirtualKeyCode::Escape),
state: winit::event::ElementState::Pressed,
..
},
..
}
| winit::event::WindowEvent::CloseRequested => {
*control_flow = winit::event_loop::ControlFlow::Exit;
}
_ => {
example.as_mut().unwrap().update(event);
event_loop
.run(move |event, target| {
let _ = &window; // force ownership by the closure
target.set_control_flow(ControlFlow::Poll);

match event {
Event::LoopExiting => {
example.take().unwrap().exit();
}
},
winit::event::Event::RedrawRequested(_) => {
let ex = example.as_mut().unwrap();
{
accum_time += last_frame_inst.elapsed().as_secs_f32();
last_frame_inst = Instant::now();
frame_count += 1;
if frame_count == 100 && !ex.is_empty() {
println!(
"Avg frame time {}ms",
accum_time * 1000.0 / frame_count as f32
);
accum_time = 0.0;
frame_count = 0;
Event::WindowEvent { event, .. } => match event {
WindowEvent::KeyboardInput {
event:
KeyEvent {
logical_key: Key::Named(NamedKey::Escape),
state: ElementState::Pressed,
..
},
..
}
}
ex.render();
}
winit::event::Event::LoopDestroyed => {
example.take().unwrap().exit();
| WindowEvent::CloseRequested => target.exit(),
WindowEvent::RedrawRequested => {
let ex = example.as_mut().unwrap();
{
accum_time += last_frame_inst.elapsed().as_secs_f32();
last_frame_inst = Instant::now();
frame_count += 1;
if frame_count == 100 && !ex.is_empty() {
println!(
"Avg frame time {}ms",
accum_time * 1000.0 / frame_count as f32
);
accum_time = 0.0;
frame_count = 0;
}
}
ex.render();
}
_ => {
example.as_mut().unwrap().update(event);
}
},
_ => {}
}
_ => {}
}
});
})
.unwrap();
}

0 comments on commit 76d3175

Please sign in to comment.