2
0

sdl_timer.odin 784 B

12345678910111213141516171819202122232425262728
  1. package sdl2
  2. import "core:c"
  3. when ODIN_OS == .Windows {
  4. @(ignore_duplicates)
  5. foreign import lib "SDL2.lib"
  6. } else {
  7. @(ignore_duplicates)
  8. foreign import lib "system:SDL2"
  9. }
  10. TimerCallback :: proc "c" (interval: u32, param: rawptr) -> u32
  11. TimerID :: distinct c.int
  12. TICKS_PASSED :: #force_inline proc "c" (A, B: u32) -> bool {
  13. return bool(i32(B) - i32(A) <= 0)
  14. }
  15. @(default_calling_convention="c", link_prefix="SDL_")
  16. foreign lib {
  17. GetTicks :: proc() -> u32 ---
  18. GetPerformanceCounter :: proc() -> u64 ---
  19. GetPerformanceFrequency :: proc() -> u64 ---
  20. Delay :: proc(ms: u32) ---
  21. AddTimer :: proc(interval: u32, callback: TimerCallback, param: rawptr) -> TimerID ---
  22. RemoveTimer :: proc(id: TimerID) -> bool ---
  23. }