From 7c29df8ff230f4b48692a73f605cf8d7fd21b037 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C5=82a=C5=BCej=20Sowa?= Date: Sun, 8 Dec 2024 00:06:49 +0100 Subject: [PATCH] Implement z_clock_advance for windows port --- src/system/windows/system.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/system/windows/system.c b/src/system/windows/system.c index 51acd4146..acd83835b 100644 --- a/src/system/windows/system.c +++ b/src/system/windows/system.c @@ -237,6 +237,42 @@ unsigned long z_clock_elapsed_s(z_clock_t *instant) { return (unsigned long)elapsed; } +void z_clock_advance_us(z_clock_t *clock, unsigned long duration) { + LARGE_INTEGER frequency; + QueryPerformanceFrequency(&frequency); // ticks per second + + // Hardware not supporting QueryPerformanceFrequency + if (frequency.QuadPart == 0) { + return; + } + double ticks = (double)duration * frequency.QuadPart / 1000000.0; + clock->QuadPart += (LONGLONG)ticks; +} + +void z_clock_advance_ms(z_clock_t *clock, unsigned long duration) { + LARGE_INTEGER frequency; + QueryPerformanceFrequency(&frequency); // ticks per second + + // Hardware not supporting QueryPerformanceFrequency + if (frequency.QuadPart == 0) { + return; + } + double ticks = (double)duration * frequency.QuadPart / 1000.0; + clock->QuadPart += (LONGLONG)ticks; +} + +void z_clock_advance_s(z_clock_t *clock, unsigned long duration) { + LARGE_INTEGER frequency; + QueryPerformanceFrequency(&frequency); // ticks per second + + // Hardware not supporting QueryPerformanceFrequency + if (frequency.QuadPart == 0) { + return; + } + double ticks = (double)duration * frequency.QuadPart; + clock->QuadPart += (LONGLONG)ticks; +} + /*------------------ Time ------------------*/ z_time_t z_time_now(void) { z_time_t now;