- while(*text)
- {
- ssize_t written = write(1, text, strlen(text));
- if(written <= 0)
- break; // sorry, I cannot do anything about this error - without an output
- text += written;
- }
-#ifdef FNDELAY
- fcntl (1, F_SETFL, origflags);
-#endif
- //fprintf(stdout, "%s", text);
-}
-
-double Sys_DoubleTime (void)
-{
- static int first = true;
- static double oldtime = 0.0, curtime = 0.0;
- double newtime;
- if(sys_usenoclockbutbenchmark.integer)
- {
- benchmark_time += 1;
- return ((double) benchmark_time) / 1e6;
- }
-#ifdef WIN32
- // LordHavoc: note to people modifying this code, DWORD is specifically defined as an unsigned 32bit number, therefore the 65536.0 * 65536.0 is fine.
- if (sys_usetimegettime.integer)
- {
- static int firsttimegettime = true;
- // timeGetTime
- // platform:
- // Windows 95/98/ME/NT/2000/XP
- // features:
- // reasonable accuracy (millisecond)
- // issues:
- // wraps around every 47 days or so (but this is non-fatal to us, odd times are rejected, only causes a one frame stutter)
-
- // make sure the timer is high precision, otherwise different versions of windows have varying accuracy
- if (firsttimegettime)
- {
- timeBeginPeriod (1);
- firsttimegettime = false;
- }
-
- newtime = (double) timeGetTime () / 1000.0;
- }
- else
- {
- // QueryPerformanceCounter
- // platform:
- // Windows 95/98/ME/NT/2000/XP
- // features:
- // very accurate (CPU cycles)
- // known issues:
- // does not necessarily match realtime too well (tends to get faster and faster in win98)
- // wraps around occasionally on some platforms (depends on CPU speed and probably other unknown factors)
- double timescale;
- LARGE_INTEGER PerformanceFreq;
- LARGE_INTEGER PerformanceCount;
-
- if (!QueryPerformanceFrequency (&PerformanceFreq))