1use nalgebra::Vector2;
2use winit::event::{DeviceId, ElementState, KeyEvent, MouseButton};
3
4use crate::app::diagnostics::Diagnostics;
5use crate::app::font_ctx::FontContext;
6
7pub struct AppInfo {
9 pub cursor_pos: Option<Vector2<f64>>,
11 pub keys: Vec<(DeviceId, KeyEvent)>,
13 pub buttons: Vec<(DeviceId, MouseButton, ElementState)>,
15 pub diagnostics: Diagnostics,
17 pub font_context: FontContext,
19 pub size: Vector2<f64>,
21}
22
23impl AppInfo {
24 pub fn reset(&mut self) {
26 self.buttons.clear();
27 self.keys.clear();
28 }
29}
30
31impl Default for AppInfo {
32 fn default() -> Self {
33 Self {
34 cursor_pos: None,
35 keys: Vec::with_capacity(4),
36 buttons: Vec::with_capacity(2),
37 diagnostics: Diagnostics::default(),
38 font_context: FontContext::default(),
39 size: Vector2::new(0.0, 0.0),
40 }
41 }
42}