블로그는 나의 힘!
[ Programing ]/API2009. 12. 24. 00:21

[ 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() 보다 더 정확한 프레임 측정 ]



Posted by Mister_Q
[ Programing ]/API2009. 12. 24. 00:20
[ 메시지 박스 ] MessageBox( NULL, L"Body", L"Name", MB_OK );      
================================================================================== 
// 메시지 박스 출력
// L""은 LPCSTR 로 변환하는 매크로


- 뭐 다들 아시겠지만... 역시 문제는 정작 필요할 때 딱 까먹는다는 거~~~
Posted by Mister_Q
[ Programing ]/C++2009. 12. 24. 00:13

[ 최적 조건 리턴 ] 조건 없이 바로 조건값 리턴

inline const bool IsPlaying() { return ( STATUS_PLAY == m_eStatus ); }    
// if 사용 없이 바로 해당이 있으면 true, 없으면 flase 리턴한다.



 - 조건값 리턴 : return ( STATUS_PLAY == m_eStatus );
Posted by Mister_Q