Timerを作る

 今回作るTimeは決まった間隔で画像を表示するためのものではなく、 実行速度を調べるためのものです。現在、自分のパソコンです。  1秒間に30回画像を更新できるようなSpriteアニメを作ることを 目標にしております。
 しかし、一秒間に30回も画像を更新できないかも知れないです。そんな時のために Timerを作ります。遅延の原因を探るのためには正確な時間を知る必要があります。
詳しい内容はYosshin's Web Page BM98'sROOMを見る良いでしょう。
以下、私が今回学んだこと。
以下使用するAPI
../win32apiのhelpから
typedef struct { 
    UINT wPeriodMin; 
    UINT wPeriodMax; 
} TIMECAPS;

MMRESULT timeGetDevCaps(

    LPTIMECAPS ptc,	
    UINT cbtc	
   );

MMRESULT timeBeginPeriod(

    UINT uPeriod	
   );

MMRESULT timeEndPeriod(

    UINT uPeriod	
   );	

DWORD timeGetTime(VOID);

/*
wPeriodMin
Minimum supported resolution.

wPeriodMax
Maximum supported resolution. 
*/
以下使用するAPI
void Frame::onInit()
{
  
  TIMECAPS caps;
  timeGetDevCaps(&caps,sizeof(TIMECAPS));
  timeBeginPeriod(caps.wPeriodMin);
  
}
void Frame::onPaint(PaintEvent e)
{
  Image bitmap;
  
  char ch[100];
  DWORD te;
  te  = timeGetTime();
  bitmap.loadBitmap();
  StretchDIBits(e.hdc,
                0,
                0,
                200,
                200,
                0,
                0,
                200,
                200,
                bitmap.getBitmapMap(),
                &bitmap.getBitmapInfo(),
                DIB_RGB_COLORS,
                SRCCOPY
                );

        te -= timeGetTime();
        wsprintf(ch,"sdf\n%d\n",-te);
        MessageBox(NULL,ch,"",MB_OK);  
}

 現在、 どのようにしてTimer性能を確認すればよいのだろうか? 分からない。 

ここまでの内容

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!