20 #define MAX_EVENT_LISTENER 512
void * memory_copy(void *dst, const void *src, usize size)
Copy memory.
void * memory_zero(void *mem, usize size)
Zero out memory.
Lightweight layer between platform and other engine components to enable tracing/monitoring.
struct event_system_state event_system_state
b8 event_unregister(u16 event_code, void *listener, on_event_function on_event)
Unregister a callback for a particular event type.
event_system_state event_state
struct registered_listener registered_listener
b8 event_fire(u16 event_code, void *sender, event_context context)
Fire an event.
struct registered_listener_list registered_listener_list
b8 event_register(u16 event_code, void *listener, on_event_function on_event, b8 append)
Register a callback for a particular event type.
b8 event_initialize(void)
Initialize the event system.
#define MAX_EVENT_LISTENER
Maximum number of listeners per event code.
void event_shutdown(void)
Shutdown event system.
b8(* on_event_function)(u16 event_code, void *sender, void *listener, event_context context)
Function signature for event callbacks.
@ APPLICATION_EVENT_CODE_MAX
End of external code range.
Context used to store data of an event.
registered_listener_list listener_map[APPLICATION_EVENT_CODE_MAX]
List of registered listeners and their callbacks for every event code.
registered_listener content[MAX_EVENT_LISTENER]
Consecutive priority list of event listeners and their callback.
u32 last_listener
Index after the final element in content.
void * listener
Custom listener data.
on_event_function on_event
Event callback function.