Skip to content

Commit

Permalink
Add StartCause::Init support, timer example
Browse files Browse the repository at this point in the history
  • Loading branch information
Osspial committed Nov 9, 2018
1 parent 02f922f commit a0b2bb3
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
33 changes: 33 additions & 0 deletions examples/timer.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
extern crate winit;
use std::time::{Duration, Instant};

fn main() {
let events_loop = winit::EventLoop::new();

let _window = winit::WindowBuilder::new()
.with_title("A fantastic window!")
.build(&events_loop)
.unwrap();

events_loop.run(move |event, _, control_flow| {
println!("{:?}", event);

match event {
winit::Event::NewEvents(winit::StartCause::Init) =>
*control_flow = winit::ControlFlow::WaitTimeout(Duration::new(1, 0)),
winit::Event::NewEvents(winit::StartCause::TimeoutExpired{..}) => {
*control_flow = winit::ControlFlow::WaitTimeout(Duration::new(1, 0));
println!("\nTimer\n");
},
winit::Event::NewEvents(winit::StartCause::WaitCancelled{start, requested_duration}) => {
println!("{:?}", Instant::now() - start);
*control_flow = winit::ControlFlow::WaitTimeout(requested_duration.unwrap().checked_sub(Instant::now() - start).unwrap_or(Duration::new(0, 0)));
}
winit::Event::WindowEvent {
event: winit::WindowEvent::CloseRequested,
..
} => *control_flow = winit::ControlFlow::Exit,
_ => ()
}
});
}
1 change: 1 addition & 0 deletions src/platform/windows/events_loop.rs
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ impl EventLoop {

let mut msg = mem::uninitialized();

event_handler(Event::NewEvents(StartCause::Init), &event_loop, &mut control_flow);
'main: loop {
macro_rules! call_event_handler {
($event:expr) => {{
Expand Down

0 comments on commit a0b2bb3

Please sign in to comment.