コード例 #1
0
ファイル: XLib.System.Timer.cpp プロジェクト: rbmkp4800/XLib
float32 Timer::GetTimeDelta(TimerRecord record1, TimerRecord record2)
{
	static float32 frequency = 0.0f;
	if (frequency == 0.0f)
	{
		uint64 frequencyU64 = 0;
		QueryPerformanceFrequency(PLARGE_INTEGER(&frequencyU64));
		frequency = float32(frequencyU64);
	}
	return float32(record2 - record1) / frequency;
}
コード例 #2
0
ファイル: jtag.cpp プロジェクト: AdamCDunlap/Papilio-Loader
void Jtag::Usleep(unsigned int usec)
{
  io->flush_tms(false);
  io->flush();
#ifdef __WIN32__
  if (usec < 11000) 
    /* Busy wait, as scheduler prolongs all waits for to least 10 ms
       http://sourceforge.net/apps/trac/scummvm/browser/vendor/freesci/\
       glutton/src/win32/usleep.c?rev=38187
    */
    {
      LARGE_INTEGER lFrequency;
      LARGE_INTEGER lEndTime;
      LARGE_INTEGER lCurTime;
      
      QueryPerformanceFrequency (&lFrequency);
      if (lFrequency.QuadPart)
	{
	  QueryPerformanceCounter (&lEndTime);
	  lEndTime.QuadPart += (LONGLONG) usec * lFrequency.QuadPart / 1000000;
	  do
	    {
	      QueryPerformanceCounter (&lCurTime);
	      Sleep(0);
	    } while (lCurTime.QuadPart < lEndTime.QuadPart);
	}
    }
  else
    {
      /* from http://forums.devx.com/showthread.php?p=518756 without overheade calculation*/
      HANDLE timer =   CreateWaitableTimer( 0, true, 0 ) ;
      
      __int64 due_time =  - ( __int64)usec * 10 ;   // time in 100 nanosecond units 
      SetWaitableTimer( timer, PLARGE_INTEGER(&due_time), 0, 0, 0, 0 )  ; 
      
      DWORD result = WaitForSingleObject( timer, INFINITE ) ;
      CloseHandle( timer ) ;
      if(result !=WAIT_OBJECT_0)
	fprintf(stderr,"Usleep failed\n");
    }
#else
  usleep(usec);
#endif
}
コード例 #3
0
ファイル: Timer.cpp プロジェクト: rbmkp4800/Games
void Timer::Initialize()
{
	uint64 frequencyU64 = 0;
	QueryPerformanceFrequency(PLARGE_INTEGER(&frequencyU64));
	frequency = float32(frequencyU64);
}
コード例 #4
0
ファイル: Timer.cpp プロジェクト: rbmkp4800/Games
TimerRecord Timer::GetRecord()
{
	uint64 record = 0;
	QueryPerformanceCounter(PLARGE_INTEGER(&record));
	return TimerRecord(record);
}