File tree Expand file tree Collapse file tree 1 file changed +16
-0
lines changed Expand file tree Collapse file tree 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;
77
88impl App {
99 pub fn main_loop ( & mut self ) {
10+ let config = & self . config ;
11+ let frame_rate = config. frame_rate . unwrap ( ) ;
12+
1013 // events
1114 let mut event_pump = self . sdl_context . event_pump ( ) . unwrap ( ) ;
15+ let mut timer = self . sdl_context . timer ( ) . unwrap ( ) ;
1216
1317 // renderLoop
1418 ' running: loop {
19+ // get start time
20+ let start_time = timer. ticks ( ) ;
21+
1522 // check for event
1623 for event in event_pump. poll_iter ( ) {
1724 match event {
@@ -82,6 +89,15 @@ impl App {
8289
8390 // swap buffers
8491 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+ }
85101 }
86102 }
87103}
You can’t perform that action at this time.
0 commit comments