HAS_XX is used elsewhere in the project to select optional sources,
will only be true if the lib is available on the system, and the
user asked to use it.
The X11 XKeyEvent structure (and others) include a timestamp
field, with 1ms resolution.
This was previously ignored causing the input timestamps to be
set to the middle of each frame.
If the timestamps are passed through then the event timestamps are
not coupled to the framerate and the polling issues are resolved.
* Initialise variables to ensure input thread is started
m_bShutdown was not initialised. This meant that the input
thread would never be started seemingly at random.
In my case m_bShutdown was always false when running in fullscreen
but not in windowed mode for some reason
* Avoid crash in ~LightsDriver_SystemMessage
This will avoid a crash caused by the fact LIGHTSMAN is destroyed
after the other MAN objects
* Rework code path for turning lights off on exit
Calls to LightsDriver::reset removed from each driver to avoid any crashes
LightsDriver::reset renamed to Rest to match surrounding style
Added LightsManager::TurnOffAllLights, called before XXXMAN objects are deleted
* Add LightsDriver::reset
Function will reset all lights to off
Function needs to be called by each of the driver implementations
as needed during destruction
* Reset lights to off on exit