[ 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 " );
}
// 테스트 ( 아직 미확인 )
'[ Programing ] > API' 카테고리의 다른 글
[DDB] BitBlt() 비트맵 출력 (0) | 2010.02.04 |
---|---|
[DDB] TransparentBlt() 지정 컬러 값 제거 후 출력 (0) | 2010.02.04 |
문자 변환 ( 멀티 바이트(ANSI) -> 유니 코드 ) (0) | 2010.02.01 |
외부 프로그램 실행 함수 (0) | 2010.02.01 |
하트 그리기 (0) | 2009.12.29 |