es_register_event and es_add_event_listener takes a pointer
This commit is contained in:
parent
c0409a612e
commit
7021b7a401
@ -131,19 +131,19 @@ void es_deinit(EventSystem *event_system) {
|
||||
event_system->id = 0;
|
||||
}
|
||||
|
||||
Event es_register_event(EventSystem event_system) {
|
||||
Event es_register_event(EventSystem *event_system) {
|
||||
Event event = INVALID_EVENT;
|
||||
|
||||
if (IS_INVALID_SYSTEM(event_system)) {
|
||||
if (!event_system || IS_INVALID_SYSTEM((*event_system))) {
|
||||
goto RETURN_EVENT;
|
||||
}
|
||||
|
||||
ESInternal *es = get_event_system_internal(event_system);
|
||||
ESInternal *es = get_event_system_internal(*event_system);
|
||||
if (!VALID_MAGIC(es)) {
|
||||
goto RETURN_EVENT;
|
||||
}
|
||||
|
||||
event.system = event_system;
|
||||
event.system = *event_system;
|
||||
|
||||
EventSlot *event_slots_array = get_event_slots_array(es);
|
||||
|
||||
@ -193,14 +193,14 @@ void es_deregister_event(EventSystem event_system, Event *event) {
|
||||
event->id = 0;
|
||||
}
|
||||
|
||||
EventListener es_add_event_listener(EventSystem event_system, Event event, EventCallback callback) {
|
||||
EventListener es_add_event_listener(EventSystem *event_system, Event event, EventCallback callback) {
|
||||
EventListener listener = INVALID_LISTENER;
|
||||
|
||||
if (IS_INVALID_SYSTEM(event_system) || IS_INVALID_EVENT(event) || event_system.id != event.system.id || !callback) {
|
||||
if (!event_system || IS_INVALID_SYSTEM((*event_system)) || IS_INVALID_EVENT(event) || event_system->id != event.system.id || !callback) {
|
||||
goto RETURN_LISTENER;
|
||||
}
|
||||
|
||||
ESInternal *es = get_event_system_internal(event_system);
|
||||
ESInternal *es = get_event_system_internal(*event_system);
|
||||
if (!VALID_MAGIC(es)) {
|
||||
goto RETURN_LISTENER;
|
||||
}
|
||||
|
@ -30,8 +30,8 @@ typedef void (*EventCallback)(void *data);
|
||||
|
||||
EventSystem es_init(u64 initial_event_capacity, u64 initial_listeners_capacity);
|
||||
void es_deinit(EventSystem *event_system);
|
||||
Event es_register_event(EventSystem event_system);
|
||||
Event es_register_event(EventSystem *event_system);
|
||||
void es_deregister_event(EventSystem event_system, Event *event);
|
||||
EventListener es_add_event_listener(EventSystem event_system, Event event, EventCallback callback);
|
||||
EventListener es_add_event_listener(EventSystem *event_system, Event event, EventCallback callback);
|
||||
void es_remove_event_listener(EventSystem event_system, EventListener listener);
|
||||
void es_emit_event(EventSystem event_system, Event event, void *data);
|
||||
|
@ -40,8 +40,8 @@ int main(void) {
|
||||
EventSystem es = es_init(COUNT_EVENTS, 64);
|
||||
|
||||
for (int i = 0; i < COUNT_EVENTS; ++i) {
|
||||
events[i] = es_register_event(es);
|
||||
listeners[i] = es_add_event_listener(es, events[i], callbacks[i]);
|
||||
events[i] = es_register_event(&es);
|
||||
listeners[i] = es_add_event_listener(&es, events[i], callbacks[i]);
|
||||
}
|
||||
|
||||
WindowEvent window_event = { .window_width = 1280, .window_height = 720 };
|
||||
@ -61,8 +61,8 @@ int main(void) {
|
||||
es_emit_event(es, events[EVENT_MOUSE], (void *)&mouse_event);
|
||||
|
||||
// You can also add other events not stored in an array
|
||||
Event extra_event = es_register_event(es);
|
||||
EventListener listener = es_add_event_listener(es, extra_event, extra_event_handler);
|
||||
Event extra_event = es_register_event(&es);
|
||||
EventListener listener = es_add_event_listener(&es, extra_event, extra_event_handler);
|
||||
es_emit_event(es, extra_event, NULL);
|
||||
es_remove_event_listener(es, listener);
|
||||
es_deregister_event(es, &extra_event);
|
||||
|
Loading…
Reference in New Issue
Block a user