From e10f8fabac5c623f33d5c9ea155036071734db18 Mon Sep 17 00:00:00 2001 From: Lephe Date: Fri, 17 Sep 2021 09:42:11 +0200 Subject: [PATCH] azur: filter out internal events used to wake up the main loop --- azur/src/sdl_opengl/init.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/azur/src/sdl_opengl/init.c b/azur/src/sdl_opengl/init.c index 2e649ce..b054fb3 100644 --- a/azur/src/sdl_opengl/init.c +++ b/azur/src/sdl_opengl/init.c @@ -189,6 +189,14 @@ static Uint32 handler(Uint32 interval, void *param) return interval; } +static int filter_event(void *userdata, SDL_Event *event) +{ + (void)userdata; + if(event->type == SDL_USEREVENT && event->user.code == ml_event) + return 0; + return 1; +} + int azur_main_loop( void (*render)(void), int render_fps, int (*update)(void), int update_ups, @@ -242,6 +250,8 @@ int azur_main_loop( "break" SDL_WaitEvent() without us needing to read from the queue (which would take events away from the user). */ SDL_WaitEvent(NULL); + /* Remove that unneeded event */ + SDL_FilterEvents(filter_event, NULL); } return 0;