Optimized Window::waitEvent a bit (no sleep if events are available at first try)

This commit is contained in:
Laurent Gomila 2013-11-04 07:37:50 +01:00
parent f69a35e63d
commit ff555d6f85

View File

@ -99,24 +99,21 @@ bool WindowImpl::popEvent(Event& event, bool block)
// If the event queue is empty, let's first check if new events are available from the OS
if (m_events.empty())
{
if (!block)
{
// Non-blocking mode: process events and continue
// Get events from the system
processJoystickEvents();
processEvents();
}
else
{
// Blocking mode: process events until one is triggered
// In blocking mode, we must process events until one is triggered
if (block)
{
// Here we use a manual wait loop instead of the optimized
// wait-event provided by the OS, so that we don't skip joystick
// events (which require polling)
while (m_events.empty())
{
sleep(milliseconds(10));
processJoystickEvents();
processEvents();
sleep(milliseconds(10));
}
}
}