Permalink
Browse files

Optimized Window::waitEvent a bit (no sleep if events are available a…

…t first try)
  • Loading branch information...
LaurentGomila committed Nov 4, 2013
1 parent f69a35e commit ff555d6f851ddcc9815d34e294f7dbf44180ac90
Showing with 7 additions and 10 deletions.
  1. +7 −10 src/SFML/Window/WindowImpl.cpp
@@ -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
processJoystickEvents();
processEvents();
}
else
{
// Blocking mode: process events until one is triggered
// Get events from the system
processJoystickEvents();
processEvents();
// 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));
}
}
}

0 comments on commit ff555d6

Please sign in to comment.