time_windows.odin 403 B

123456789101112131415161718192021222324
  1. package time
  2. import "core:sys/win32"
  3. IS_SUPPORTED :: true;
  4. now :: proc() -> Time {
  5. file_time: win32.Filetime;
  6. win32.get_system_time_as_file_time(&file_time);
  7. quad := u64(file_time.lo) | u64(file_time.hi) << 32;
  8. UNIX_TIME_START :: 0x019db1ded53e8000;
  9. ns := (1e9/1e7)*(i64(quad) - UNIX_TIME_START);
  10. return Time{_nsec=ns};
  11. }
  12. sleep :: proc(d: Duration) {
  13. win32.sleep(i32(d/Millisecond));
  14. }