w32 wait for events
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user