Add ability to send custom user events

This commit is contained in:
Osspial
2018-08-19 13:44:22 -04:00
parent a0b2bb3695
commit 2c607ff87f
12 changed files with 178 additions and 122 deletions

View File

@@ -1,9 +1,10 @@
extern crate winit;
use winit::{EventLoop, WindowBuilder};
fn main() {
let events_loop = winit::EventLoop::new();
let events_loop: EventLoop<i32> = EventLoop::new_user_event();
let _window = winit::WindowBuilder::new()
let _window = WindowBuilder::new()
.with_title("A fantastic window!")
.build(&events_loop)
.unwrap();
@@ -11,10 +12,12 @@ fn main() {
let proxy = events_loop.create_proxy();
std::thread::spawn(move || {
let mut counter = 0;
// Wake up the `events_loop` once every second.
loop {
std::thread::sleep(std::time::Duration::from_secs(1));
proxy.wakeup().unwrap();
proxy.send_event(counter).unwrap();
counter += 1;
}
});
@@ -22,7 +25,7 @@ fn main() {
println!("{:?}", event);
match event {
winit::Event::WindowEvent { event: winit::WindowEvent::CloseRequested, .. } =>
*control_flow = winit::ControlFlow::Wait,
*control_flow = winit::ControlFlow::Exit,
_ => *control_flow = winit::ControlFlow::Wait,
}
});