w32 wait for events

This commit is contained in:
krzosa
2025-01-04 11:24:01 +01:00
parent dcd1266477
commit 489c8c413e
2 changed files with 15 additions and 19 deletions

View File

@@ -165,11 +165,17 @@ fn LRESULT CALLBACK w32_window_proc(HWND wnd, UINT msg, WPARAM wparam, LPARAM lp
return 0;
}
app_event_list_t w32_get_events(ma_arena_t *arena) {
app_event_list_t w32_get_events(ma_arena_t *arena, b32 wait) {
w32_event_arena = arena;
memory_zero(&w32_event_list, sizeof(w32_event_list));
zero_struct(&w32_event_list);
MSG msg;
if (wait) {
GetMessageW(&msg, NULL, 0, 0);
TranslateMessage(&msg);
DispatchMessageW(&msg);
}
while (PeekMessageW(&msg, NULL, 0, 0, PM_REMOVE)) {
TranslateMessage(&msg);
DispatchMessageW(&msg);
@@ -342,7 +348,7 @@ int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int n
u64 missed_frames = 0;
u64 frame = 0;
for (;;) {
app_event_list_t event_list = w32_get_events(tcx.temp);
app_event_list_t event_list = w32_get_events(tcx.temp, false);
for (app_event_t *ev = event_list.first; ev; ev = ev->next) {
if (ev->kind == app_event_kind_key_down && ev->key == app_key_escape) {
@@ -363,11 +369,10 @@ int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int n
// w32_present_canvas(&canvas);
ma_set0(tcx.temp);
///////////////////////////////
// end of frame timings
ma_set0(tcx.temp);
f64 time_update_partial = os_seconds_now() - time_frame_start;
time_update = time_update_partial;
if (time_update < time_delta) {