pyqie_platform/
platform.rs1use std::ptr::{null_mut};
2
3use std::time::SystemTime;
4use core::time::Duration;
5use std::thread;
6
7pub struct Platform {
8}
9
10static mut PLATFORM: *mut Platform = null_mut();
11
12pub fn platform() -> &'static mut Platform {
13 unsafe { &mut *PLATFORM }
14}
15
16pub fn init<'a, F: FnOnce(u32, u32) -> (&'a str, u32, u32)>(window_params: F) {
17
18}
19
20#[allow(unused_mut)]
21pub fn run<F: FnMut()>(mut main_loop: F) {
22 loop {
23 let start_ms = elapsed_time() as f64;
24 main_loop();
25 let elapsed_ms = elapsed_time() as f64 - start_ms;
26 let wait_ms = 1000.0 / 60.0 - elapsed_ms;
27 if wait_ms > 0.0 {
28 sleep((wait_ms / 2.0) as u32);
29 }
30 }
31}
32
33pub fn quit() {
34 std::process::exit(0);
35}
36
37pub fn elapsed_time() -> u32 {
38 let now = SystemTime::now();
39 let since_epoch = now.duration_since(SystemTime::UNIX_EPOCH).unwrap();
40 let timestamp: u32 = since_epoch.as_secs() as u32;
41 return timestamp;
42}
43
44pub fn sleep(ms: u32) {
45 let duration = Duration::from_millis(ms as u64);
46 thread::sleep(duration);
47}