diff --git a/build_file.c b/build_file.c index f31570a..107fcfd 100644 --- a/build_file.c +++ b/build_file.c @@ -29,7 +29,7 @@ int main(int argc, char **argv) { bool run_server = false; bool core_test_target = false; - bool wasm_target = false; + bool wasm_target = true; bool win32_target = true; if (execute_python_snippets) { diff --git a/src/app/app_wasm.c b/src/app/app_wasm.c index e8d2604..2592e3e 100644 --- a/src/app/app_wasm.c +++ b/src/app/app_wasm.c @@ -45,8 +45,8 @@ glb_wasm_export i32 wasm_temp_buff2_len = 127; global f64 wasm_dpr; global f64 wasm_delta_time; global f64 wasm_time; -global f64 wasm_last_time_milliseconds; -global f64 wasm_app_init_time_milliseconds; +global f64 wasm_last_time; +global f64 wasm_app_init_time; global app_event_list_t wasm_event_list; typedef struct wasm_cached_t wasm_cached_t; @@ -178,9 +178,13 @@ fn_wasm_export void wasm_key_up(char *key, b32 ctrl, b32 shift, b32 alt, b32 met } } +fn f64 wasm_seconds_now(void) { + return wasm_get_milliseconds() / 1000.0; +} + fn_wasm_export void wasm_update(f64 width, f64 height, f64 dpr) { - wasm_time = os_milliseconds_now(); - wasm_delta_time = wasm_time - wasm_last_time_milliseconds; + wasm_time = wasm_seconds_now(); + wasm_delta_time = wasm_time - wasm_last_time; v2f64_t window_size = (v2f64_t){width / dpr, height / dpr}; wasm_dpr = dpr; @@ -205,13 +209,13 @@ fn_wasm_export void wasm_update(f64 width, f64 height, f64 dpr) { ma_set0(tcx.temp); zero_struct(&wasm_event_list); - wasm_last_time_milliseconds = wasm_time; + wasm_last_time = wasm_time; } fn_wasm_export void wasm_init(void) { core_init(); app_init(); - wasm_app_init_time_milliseconds = os_milliseconds_now(); + wasm_app_init_time = wasm_seconds_now(); } fn f64 app_get_anim_time(void) { diff --git a/src/app/app_win32.c b/src/app/app_win32.c index fda6c9b..0edff4d 100644 --- a/src/app/app_win32.c +++ b/src/app/app_win32.c @@ -236,6 +236,20 @@ void w32_try_resizing_canvas(w32_canvas_t *canvas, HWND window_handle) { } } +fn f64 os_seconds_now(void) { + static int64_t counts_per_second; + if (counts_per_second == 0) { + LARGE_INTEGER freq; + QueryPerformanceFrequency(&freq); + counts_per_second = freq.QuadPart; + } + + LARGE_INTEGER time; + QueryPerformanceCounter(&time); + f64 result = (f64)time.QuadPart / (f64)counts_per_second; + return result; +} + int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { tcx.temp = ma_create(ma_default_reserve_size); diff --git a/src/core/core_platform_unix.c b/src/core/core_platform_unix.c index 2bdbcc3..3d51c2d 100644 --- a/src/core/core_platform_unix.c +++ b/src/core/core_platform_unix.c @@ -32,19 +32,6 @@ fn date_t os_date_now(void) { return result; } -fn u64 os_get_microseconds(void) { - struct timespec t; - clock_gettime(CLOCK_MONOTONIC, &t); - u64 result = t.tv_sec*million(1) + (t.tv_nsec/thousand(1)); - return result; -} - -fn f64 os_milliseconds_now(void) { - u64 micros = os_get_microseconds(); - f64 result = (f64)micros / 1000.0; - return result; -} - fn void os_error_box(char *str) { fprintf(stderr, "%s", str); } diff --git a/src/core/core_platform_wasm.c b/src/core/core_platform_wasm.c index 974478c..eaaa7af 100644 --- a/src/core/core_platform_wasm.c +++ b/src/core/core_platform_wasm.c @@ -38,10 +38,6 @@ fn f64 os_parse_float(char *str) { return wasm_parse_float((isize)str, str_len((char *)str)); } -fn f64 os_milliseconds_now(void) { - return wasm_get_milliseconds(); -} - fn void core_init(void) { isize page_size = kib(64); isize page_count = __builtin_wasm_memory_size(0); diff --git a/src/core/core_platform_win32.c b/src/core/core_platform_win32.c index ddfdaca..b549692 100644 --- a/src/core/core_platform_win32.c +++ b/src/core/core_platform_win32.c @@ -32,26 +32,6 @@ fn date_t os_date_now(void) { return result; } -fn f64 os_seconds_now(void) { - static int64_t counts_per_second; - if (counts_per_second == 0) { - LARGE_INTEGER freq; - QueryPerformanceFrequency(&freq); - counts_per_second = freq.QuadPart; - } - - LARGE_INTEGER time; - QueryPerformanceCounter(&time); - f64 result = (f64)time.QuadPart / (f64)counts_per_second; - return result; -} - -fn f64 os_milliseconds_now(void) { - f64 secs = os_seconds_now(); - f64 result = secs * 1000; - return result; -} - fn void os_error_box(char *str) { MessageBoxA(NULL, str, "fatal error", MB_OK); fprintf(stderr, "%s", str); diff --git a/src/os/os.c b/src/os/os.c new file mode 100644 index 0000000..e69de29 diff --git a/src/os/os.h b/src/os/os.h new file mode 100644 index 0000000..e69de29 diff --git a/src/os/os_unix.c b/src/os/os_unix.c new file mode 100644 index 0000000..e69de29 diff --git a/src/os/os_wasm.c b/src/os/os_wasm.c new file mode 100644 index 0000000..e69de29 diff --git a/src/os/os_win32.c b/src/os/os_win32.c new file mode 100644 index 0000000..e69de29