File tree 1 file changed +16
-0
lines changed
1 file changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -7,11 +7,18 @@ use crate::dummy_audio;
7
7
8
8
impl App {
9
9
pub fn main_loop ( & mut self ) {
10
+ let config = & self . config ;
11
+ let frame_rate = config. frame_rate . unwrap ( ) ;
12
+
10
13
// events
11
14
let mut event_pump = self . sdl_context . event_pump ( ) . unwrap ( ) ;
15
+ let mut timer = self . sdl_context . timer ( ) . unwrap ( ) ;
12
16
13
17
// renderLoop
14
18
' running: loop {
19
+ // get start time
20
+ let start_time = timer. ticks ( ) ;
21
+
15
22
// check for event
16
23
for event in event_pump. poll_iter ( ) {
17
24
match event {
@@ -82,6 +89,15 @@ impl App {
82
89
83
90
// swap buffers
84
91
self . window . gl_swap_window ( ) ;
92
+
93
+ if frame_rate > 0 {
94
+ // calculate frame time
95
+ let frame_time = timer. ticks ( ) - start_time;
96
+ if frame_time < 1000 / frame_rate {
97
+ // sleep the remaining frame time
98
+ timer. delay ( 1000 / frame_rate - frame_time) ;
99
+ }
100
+ }
85
101
}
86
102
}
87
103
}
You can’t perform that action at this time.
0 commit comments