[ QueryPerformanceCounter() 이용하여 GetTickCount() 보다 더 정확한 프레임 측정 1 ]
LARGE_INTEGER TimeBefore; // 초기 초당 카운터 값
LARGE_INTEGER TimeAfter; // 초당 카운터 변화 값
LARGE_INTEGER FrameInfor; // 프레임 정보
double Time = 0; // 초당 카운터 누적 값
int Count = 0; // 카운터
int frame = 60; // 초당 60 프레임
QueryPerformanceFrequency( &FrameInfor ); // 초당 정보.
QueryPerformanceCounter( &TimeBefore ); // 초당 카운터 변화값
printf( "Test : %f \n", (double)FrameInfor.QuadPart /60 );
while( true )
{
QueryPerformanceCounter( &TimeAfter );
// 1 초 / (현재값-이전값) = 1 미만 시 1초
Time = 1 / ( ( (double)TimeAfter.QuadPart -(double)TimeBefore.QuadPart ) / (double)FrameInfor.QuadPart );
//printf( "test : %f \t\t %f \n ", Time, 1 /Time );
if( 1 > Time ) break; // 1초가 되면 종료
Count++;
}
printf( "TIME : %f \n", Time );
printf( "COUNT : %d \n", Count );
/////////////// 프레임 확인 ////////////////////
int temp2 = Count % 60;
frame = Count / 60;
frame += temp2;
/////////////// 출력 확인 //////////////////////
int temp = 0;
while( Count > 0 )
{
Count -= frame;
temp++;
}
printf( "Count : %d, \t Frame : %d, \t Fr : %d, \t Fr%% : %d \n", Count, temp, frame, temp2 );
return 0;
- 핵심 : QueryPerformanceFrequency( &FrameInfor ); QueryPerformanceCounter( &TimeBefore );
추가 링크 :
[프레임] QueryPerformanceCounter() 이용하여 GetTickCount() 보다 더 정확한 프레임 측정2
[ QueryPerformanceCounter() 이용하여 GetTickCount() 보다 더 정확한 프레임 측정 ]
'[ Programing ] > API' 카테고리의 다른 글
문자 변환 ( 멀티 바이트(ANSI) -> 유니 코드 ) (0) | 2010.02.01 |
---|---|
외부 프로그램 실행 함수 (0) | 2010.02.01 |
하트 그리기 (0) | 2009.12.29 |
[프레임] QueryPerformanceCounter() 이용하여 GetTickCount() 보다 더 정확한 프레임 측정2 (0) | 2009.12.24 |
[ 기초 ] 메시지 박스 MessageBox(); (0) | 2009.12.24 |