したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

管理人の独り言(プログラミング関連)

1418 ◆adhRKFl5jU:2009/02/19(木) 20:18:14
#include "FPSTimer.hpp"
#include <SDL/SDL.h>

/*==========*/
FPSTimer::FPSTimer(unsigned int fps)
: m_fps(fps)
, m_dis(1000 / fps)
, m_shouldSkip(false)
{
Start();
}

/*==========*/
void
FPSTimer::Start(){
m_start = m_last = SDL_GetTicks();
}

/*==========*/
void
FPSTimer::Wait(){
//49日間も実行されないだろう・・・
unsigned int next = m_last + m_dis;
unsigned int now = SDL_GetTicks();

m_shouldSkip = false;

printf("WaitTime: %d\n", next - now);

if(now == next){
m_last = now;
}else if(next > now){
//SDL_Delayの精度が10msぐらいかなとか。
if(next - now > 10){
SDL_Delay(next - now - 10);
}
for(;;){
now = SDL_GetTicks();
if(next <= now){
break;
}
}
m_last = now;
}else{
m_shouldSkip = true;
m_last = now;
}
}

/*==========*/
bool
FPSTimer::ShouldSkip(){
return m_shouldSkip;
}


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板