Process Qt events in the SDL loop

This commit is contained in:
Cameron Gutman 2018-09-13 08:03:06 -07:00
parent 64bc189010
commit c8e00195ed

View file

@ -908,10 +908,13 @@ void Session::exec(int displayOriginX, int displayOriginY)
int currentDisplayIndex = SDL_GetWindowDisplayIndex(m_Window); int currentDisplayIndex = SDL_GetWindowDisplayIndex(m_Window);
// Hijack this thread to be the SDL main thread. We have to do this // Hijack this thread to be the SDL main thread, but also process
// because we want to suspend all Qt processing until the stream is over. // Qt events in each iteration to allow us to use Qt classes.
SDL_Event event; SDL_Event event;
for (;;) { for (;;) {
// Process Qt events
QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
// We explicitly use SDL_PollEvent() and SDL_Delay() because // We explicitly use SDL_PollEvent() and SDL_Delay() because
// SDL_WaitEvent() has an internal SDL_Delay(10) inside which // SDL_WaitEvent() has an internal SDL_Delay(10) inside which
// blocks this thread too long for high polling rate mice and high // blocks this thread too long for high polling rate mice and high