1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
use rin_window as window;
use rin_math as math;
use rin_gl as gl;
use std::path::PathBuf;
#[cfg(not(target_os="android"))]
pub trait ApplicationCallbacks{
fn update(&mut self, _delta: f64, _gl: &gl::Renderer, _window: &mut window::Window){}
fn draw(&mut self, _gl: &gl::Renderer, _window: &window::Window){}
fn handle_event(&mut self, _gl: &gl::Renderer, _window: &window::Window, event: &window::Event){
match *event{
window::Event::KeyPressed{key, mods, repeat} => {self.key_pressed(key,mods,repeat);},
window::Event::KeyReleased{key} => {self.key_released(key);}
window::Event::MouseMoved{pos} => {self.mouse_moved(pos);}
window::Event::MousePressed{pos,button,mods} => {self.mouse_pressed(pos,button,mods);}
window::Event::MouseReleased{pos,button,mods} => {self.mouse_released(pos,button,mods);}
window::Event::WindowMoved{pos} => {self.window_moved(pos);}
window::Event::WindowResized{size} => {self.window_resized(size);}
window::Event::Scroll{scroll} => {self.scroll(scroll);}
window::Event::WindowClosing => {self.window_closing();}
_ => {}
}
}
fn key_pressed(&mut self, _key: window::Key, _mods: window::KeyModifiers, _repeat: bool){}
fn key_released(&mut self, _key: window::Key){}
fn mouse_moved(&mut self, _pos: math::Pnt2<f64>){}
fn mouse_pressed(&mut self, _pos: math::Pnt2<f64>, _button: window::MouseButton, _mods: window::KeyModifiers){}
fn mouse_released(&mut self, _pos: math::Pnt2<f64>, _button: window::MouseButton, _mods: window::KeyModifiers){}
fn window_moved(&mut self, _pos: math::Pnt2<i32>){}
fn window_resized(&mut self, _size: math::Vec2<i32>){}
fn scroll(&mut self, _scroll: math::Vec2<f64>){}
fn window_closing(&mut self){}
fn dropped(&mut self, _paths: &[PathBuf]){}
}
#[cfg(target_os="android")]
pub trait ApplicationCallbacks: window::LifeCycleListener + window::GLReadyListener{
fn update<R: RendererMut>(&mut self, _frame_time_s: f64, gl: &mut R){}
fn draw<R: RendererMut>(&mut self, gl: &mut R){}
fn key_pressed(&mut self, _key: window::Key){}
fn key_released(&mut self, _key: window::Key){}
fn mouse_moved(&mut self, _pos: math::Pnt2<f64>){}
fn mouse_pressed(&mut self, _pos: math::Pnt2<f64>, _button: window::MouseButton){}
fn mouse_released(&mut self, _pos: math::Pnt2<f64>, _button: window::MouseButton){}
fn window_moved(&mut self, _pos: math::Pnt2<i32>){}
fn window_resized(&mut self, _size: math::Vec2<i32>){}
fn scroll(&mut self, _scroll: math::Vec2<f64>){}
fn window_closing(&mut self){}
fn dropped(&mut self, paths: &[PathBuf]){}
}