- for ev in display.poll_events() {
- match ev {
- glutin::Event::Closed |
- KeyboardInput(Pressed, _, Some(VirtualKeyCode::Escape)) |
- KeyboardInput(Pressed, _, Some(VirtualKeyCode::Q)) => {
- return support::Action::Stop
- },
- KeyboardInput(Pressed, _, Some(VirtualKeyCode::B)) => {
- bounding_box_enabled ^= true;
- },
- KeyboardInput(Pressed, _, Some(VirtualKeyCode::P)) => {
- pause ^= true;
- },
- KeyboardInput(Pressed, _, Some(VirtualKeyCode::PageUp)) => {
- t += 0.01;
- },
- KeyboardInput(Pressed, _, Some(VirtualKeyCode::PageDown)) => {
- t -= 0.01;
- },
- KeyboardInput(Pressed, _, Some(VirtualKeyCode::F10)) => {
- screenshot(&display);
- },
- KeyboardInput(Pressed, _, Some(VirtualKeyCode::F11)) => {
- fullscreen ^= true;
- if fullscreen {
- // Not implemented on Linux
- glutin::WindowBuilder::new()
- .with_fullscreen(glutin::get_primary_monitor())
- .with_depth_buffer(24)
- .rebuild_glium(&display).unwrap();
- } else {
- //glutin::WindowBuilder::new()
- // .rebuild_glium(&display).unwrap();
- }
- },
- ev => camera.process_input(&ev),
+ let mut action = support::Action::Continue;
+ events_loop.poll_events(|event| {
+ if let glutin::Event::WindowEvent { event, .. } = event {
+ camera.process_input(&event);
+ match event {
+ glutin::WindowEvent::Closed => {
+ action = support::Action::Stop
+ },
+ KeyboardInput { input, .. } => {
+ if input.state == glutin::ElementState::Pressed {
+ if let Some(key) = input.virtual_keycode {
+ match key {
+ VirtualKeyCode::Escape | VirtualKeyCode::Q => {
+ action = support::Action::Stop;
+ },
+ _ => (),
+ }
+ }
+ }
+ },
+/*
+ KeyboardInput { input: glutin::KeyboardInput { state: Pressed, virtual_keycode: Some(VirtualKeyCode::Escape), .. } } |
+ KeyboardInput { input: glutin::KeyboardInput { state: Pressed, virtual_keycode: Some(VirtualKeyCode::Q), .. } } => {
+ return support::Action::Stop
+ },
+ KeyboardInput { state: Pressed, virtual_keycode: Some(VirtualKeyCode::B) } => {
+ bounding_box_enabled ^= true;
+ },
+ KeyboardInput { state: Pressed, virtual_keycode: Some(VirtualKeyCode::P) } => {
+ timer.pause ^= true;
+ },
+ KeyboardInput { state: Pressed, virtual_keycode: Some(VirtualKeyCode::PageUp) } => {
+ timer.t += 0.01;
+ },
+ KeyboardInput { state: Pressed, virtual_keycode: Some(VirtualKeyCode::PageDown) } => {
+ timer.t -= 0.01;
+ },
+ KeyboardInput { state: Pressed, virtual_keycode: Some(VirtualKeyCode::F10) } => {
+ screenshot(&display);
+ },
+ KeyboardInput { state: Pressed, virtual_keycode: Some(VirtualKeyCode::F11) } => {
+ fullscreen ^= true;
+ if fullscreen {
+ // Not implemented on Linux
+ glutin::WindowBuilder::new()
+ .with_fullscreen(glutin::get_primary_monitor())
+ .with_depth_buffer(24)
+ .rebuild_glium(&display).unwrap();
+ } else {
+ glutin::WindowBuilder::new()
+ .rebuild_glium(&display).unwrap();
+ }
+ },
+*/
+ _ => (),
+ }