* Change win32 client Sys_Sleep so it ONLY sleeps since before it was waking on

more or less any input event; fine for the server, not so much use for the
  client
* In the main loop, don't bother sleeping if it's going to be less than 10ms as
  the methods we're using to sleep at the moment aren't very precise
* Add Sys_PlatformInit for platform specific initialisation
* In win32 Sys_PlatformInit force selection of the DirectX SDL backend in order
  to get better fullscreen mouse input (in conjunction with a patched SDL DLL
  http://bugzilla.libsdl.org/show_bug.cgi?id=265)
This commit is contained in:
Tim Angus 2008-08-03 19:42:53 +00:00
parent d13269c5bb
commit 00e790ce00
5 changed files with 47 additions and 2 deletions

View file

@ -2864,7 +2864,14 @@ void Com_Frame( void ) {
msec = minMsec;
do {
Sys_Sleep( minMsec - msec );
int timeRemaining = minMsec - msec;
// The existing Sys_Sleep implementations aren't really
// precise enough to be of use beyond 100fps
// FIXME: implement a more precise sleep (RDTSC or something)
if( timeRemaining >= 10 )
Sys_Sleep( timeRemaining );
com_frameTime = Com_EventLoop();
if ( lastTime > com_frameTime ) {
lastTime = com_frameTime; // possible on first frame