블로그는 나의 힘!
[ Programing ]/API2010. 2. 1. 08:32
[ QueryPerformanceCounter() 이용하여 GetTickCount() 보다 더 정확한 측정 ]

void main ()
{
     LARGE_INTEGER TimeBefore;             // 초기 초당 카운터 값
     LARGE_INTEGER TimeAfter;                // 초당 카운터 변화 값
     LARGE_INTEGER FrameInfor;              // 프레임 정보
     double     Time   = 0;         // 초당 카운터 누적 값
     int           Count  = 0;         // 카운터
     const int   frame  = 60;       // 초당 60 프레임

     QueryPerformanceFrequency( &FrameInfor );        // 초당 정보.
     QueryPerformanceCounter( &TimeBefore );           // 초당 카운터 초기값

     const double PerFrame = (double)FrameInfor.QuadPart /frame;        // 초당 프레임 간격 설정.

     printf( "Test : %f \n", PerFrame );
     while( true )
     {
          QueryPerformanceCounter( &TimeAfter );                // 초당 현재 카운터 변화값
          Time = (double)TimeAfter.QuadPart -(double)TimeBefore.QuadPart;

          // 설정 프레임 간격시 호출. ( 60프레임으로 설정 했다면.  1 ~ 60 프레임 )
          if( PerFrame < Time )          
          {
               TimeBefore = TimeAfter;
               printf( "Count Frame : %d, Time : %f \n", Count++, Time );

               if( frame == Count ) break;              // 1초라면 종료
          }
     }

     printf( "Time 1Second \n " );
}


// 테스트 ( 아직 미확인 )




Posted by Mister_Q