- 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))
- {
- Con_Printf ("No hardware timer available\n");
- // fall back to timeGetTime
- Cvar_SetValueQuick(&sys_usetimegettime, true);
- return Sys_DoubleTime();
- }
- QueryPerformanceCounter (&PerformanceCount);
-
- #ifdef __BORLANDC__
- timescale = 1.0 / ((double) PerformanceFreq.u.LowPart + (double) PerformanceFreq.u.HighPart * 65536.0 * 65536.0);
- newtime = ((double) PerformanceCount.u.LowPart + (double) PerformanceCount.u.HighPart * 65536.0 * 65536.0) * timescale;
- #else
- timescale = 1.0 / ((double) PerformanceFreq.LowPart + (double) PerformanceFreq.HighPart * 65536.0 * 65536.0);
- newtime = ((double) PerformanceCount.LowPart + (double) PerformanceCount.HighPart * 65536.0 * 65536.0) * timescale;
- #endif
- }
-
- if (first)
- {
- first = false;
- oldtime = newtime;
- }
-
- if (newtime < oldtime)
- {
- // warn if it's significant
- if (newtime - oldtime < -0.01)
- Con_Printf("Sys_DoubleTime: time stepped backwards (went from %f to %f, difference %f)\n", oldtime, newtime, newtime - oldtime);
- }
- else
- curtime += newtime - oldtime;
- oldtime = newtime;
-
- return curtime;
+ if ((houtput != 0) && (houtput != INVALID_HANDLE_VALUE))
+ WriteFile(houtput, text, (DWORD) strlen(text), &dummy, NULL);