タイマーを作成する。
SDL_TimerID SDL_AddTimer(Uint32 interval, SDL_NewTimerCallback callback, void* param);
intervalはミリ秒で指定。
callbackは指定時間経過後に実行されるコールバック関数の関数ポインタ。この関数の定義は以下のとおり。
typedef Uint32 (*SDL_NewTimerCallback)(Uint32 interval, void* param);
paramはその実行される関数の引数。
タイマー作成成功時はタイマーIDが返る。エラーの時はNULLが返る。
コールバック関数の返り値はinterval。タイマー処理を終了する場合は、0を返す。
#include <SDL/SDL.h> /* 終了フラグ */ int endFlag = 0; /* コールバック関数(プログラム終了処理) */ Uint32 EndProgram(Uint32 interval, void* param){ /* 終了フラグを1にする。 */ endFlag = 1; /* タイマーを終了する */ return 0; } int main(int argc, char* argv[]){ /* タイマーID */ SDL_TimerID id; /* SDLライブラリ初期化 */ SDL_Init(SDL_INIT_EVERYTHING); /* ウインドウを開く */ SDL_SetVideoMode(640, 480, 0, SDL_SWSURFACE); /* タイマー作成 */ id = SDL_AddTimer(3000, &EndProgram, NULL); /* 終了までループ */ while(endFlag == 0){ /* CPUを休めるためのスリープ処理 */ SDL_Delay(10); } /* タイマーの破棄 */ SDL_RemoveTimer(id); SDL_Quit(); return 0; }
3秒後にプログラムを終了する。