mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-04 21:08:40 +00:00
equip os events with timestamp; re-enable leftover event feed-forward but add timeout
This commit is contained in:
@@ -63,6 +63,7 @@ struct OS_Event
|
|||||||
{
|
{
|
||||||
OS_Event *next;
|
OS_Event *next;
|
||||||
OS_Event *prev;
|
OS_Event *prev;
|
||||||
|
U64 timestamp_us;
|
||||||
OS_Handle window;
|
OS_Handle window;
|
||||||
OS_EventKind kind;
|
OS_EventKind kind;
|
||||||
OS_EventFlags flags;
|
OS_EventFlags flags;
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ w32_push_event(OS_EventKind kind, W32_Window *window)
|
|||||||
{
|
{
|
||||||
OS_Event *result = push_array(w32_event_arena, OS_Event, 1);
|
OS_Event *result = push_array(w32_event_arena, OS_Event, 1);
|
||||||
DLLPushBack(w32_event_list.first, w32_event_list.last, result);
|
DLLPushBack(w32_event_list.first, w32_event_list.last, result);
|
||||||
|
result->timestamp_us = os_now_microseconds();
|
||||||
result->kind = kind;
|
result->kind = kind;
|
||||||
result->window = os_window_from_w32_window(window);
|
result->window = os_window_from_w32_window(window);
|
||||||
result->flags = os_get_event_flags();
|
result->flags = os_get_event_flags();
|
||||||
|
|||||||
+8
-1
@@ -315,7 +315,14 @@ update_and_render(OS_Handle repaint_window_handle, void *user_data)
|
|||||||
{
|
{
|
||||||
arena_clear(leftover_events_arena);
|
arena_clear(leftover_events_arena);
|
||||||
leftover_events = os_event_list_copy(leftover_events_arena, &events);
|
leftover_events = os_event_list_copy(leftover_events_arena, &events);
|
||||||
MemoryZeroStruct(&leftover_events);
|
for(OS_Event *ev = leftover_events.first, *next = 0; ev != 0; ev = next)
|
||||||
|
{
|
||||||
|
next = ev->next;
|
||||||
|
if(ev->timestamp_us+1000000 < os_now_microseconds())
|
||||||
|
{
|
||||||
|
os_eat_event(&leftover_events, ev);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//- rjf: determine frame time, record into history
|
//- rjf: determine frame time, record into history
|
||||||
|
|||||||
Reference in New Issue
Block a user