(sdl_gl) Merge SDL and SDL2 event loops

This commit is contained in:
Higor Eurípedes 2014-08-22 19:39:29 -03:00
parent c5fe4fb70a
commit 0813d7dba4

View File

@ -266,18 +266,23 @@ static void sdl_ctx_check_window(void *data, bool *quit, bool *resize,unsigned *
(void)data; (void)data;
SDL_Event event; SDL_Event event;
SDL_PumpEvents();
#ifdef HAVE_SDL2 #ifdef HAVE_SDL2
SDL_PumpEvents();
while (SDL_PeepEvents(&event, 1, SDL_GETEVENT, SDL_QUIT, SDL_WINDOWEVENT) > 0) while (SDL_PeepEvents(&event, 1, SDL_GETEVENT, SDL_QUIT, SDL_WINDOWEVENT) > 0)
#else
while (SDL_PeepEvents(&event, 1, SDL_GETEVENT, SDL_QUITMASK|SDL_VIDEORESIZEMASK) > 0)
#endif
{ {
switch (event.type) switch (event.type)
{ {
case SDL_QUIT: case SDL_QUIT:
#ifdef HAVE_SDL2
case SDL_APP_TERMINATING: case SDL_APP_TERMINATING:
#endif
*quit = true; *quit = true;
break; break;
#ifdef HAVE_SDL2
case SDL_WINDOWEVENT: case SDL_WINDOWEVENT:
if (event.window.event == SDL_WINDOWEVENT_RESIZED) if (event.window.event == SDL_WINDOWEVENT_RESIZED)
{ {
@ -285,26 +290,17 @@ static void sdl_ctx_check_window(void *data, bool *quit, bool *resize,unsigned *
g_new_width = event.window.data1; g_new_width = event.window.data1;
g_new_height = event.window.data2; g_new_height = event.window.data2;
} }
break;
default:
break;
}
}
#else #else
while (SDL_PollEvent(&event)) case SDL_VIDEORESIZE:
{ g_resized = true;
switch (event.type) g_new_width = event.resize.w;
{ g_new_height = event.resize.h;
case SDL_QUIT: #endif
*quit = true;
break; break;
default: default:
break; break;
} }
} }
#endif
if (g_resized) if (g_resized)
{ {