| 123456789101112131415161718192021222324252627282930313233343536373839 |
- package time
- Tick :: struct {
- _nsec: i64, // relative amount
- }
- tick_now :: proc() -> Tick {
- return _tick_now();
- }
- tick_diff :: proc(start, end: Tick) -> Duration {
- d := end._nsec - start._nsec;
- return Duration(d);
- }
- tick_lap_time :: proc(prev: ^Tick) -> Duration {
- d: Duration;
- t := tick_now();
- if prev._nsec != 0 {
- d = tick_diff(prev^, t);
- }
- prev^ = t;
- return d;
- }
- tick_since :: proc(start: Tick) -> Duration {
- return tick_diff(start, tick_now());
- }
- @(deferred_in_out=_tick_duration_end)
- SCOPED_TICK_DURATION :: proc(d: ^Duration) -> Tick {
- return tick_now();
- }
- _tick_duration_end :: proc(d: ^Duration, t: Tick) {
- d^ = tick_since(t);
- }
|