目次 - SDL 3.0 API(機能別) - タイマ - SDL_AddTimer

SDL_AddTimer

指定のミリ秒が経過した後にコールバック関数を呼ぶように設定する

ヘッダ

SDL3/SDL_timer.h

構文

SDL_TimerID SDL_AddTimer(Uint32 interval, SDL_TimerCallback callback, void *userdata);

引数

Uint32intervalcallbackを呼ぶまでの時間(ミリ秒)
SDL_TimerCallbackcallback指定のintervalが経過した後に呼ばれる関数
void *userdatacallbackに渡されるポインタ

戻り値

(SDL_TimerID) 成功のときタイマID, 失敗のとき0を戻す. SDL_GetError()を呼んで詳細を知ることができる.

詳細

コールバック関数には, 第1引数に現在のタイマ間隔が, 第2引数にユーザがSDL_AddTimer()で設定したポインタが渡される. コールバック関数は次のタイマ間隔を戻す必要がある. 0を戻すとタイマはキャンセルされ取り除かれる.

コールバックは分離されたスレッドで実行される. 短い周期は関数から戻る前に呼ばれる可能性がある.

タイマはコールバックを実行するのにかかった時間を考慮している. 例えば, コールバックの実行に250ミリ秒かかり, 1000(ミリ秒)を戻すと, タイマは次の呼び出しまで750ミリ秒しか待たない.

間隔はOSスケジューリングで不正確になりうる. コールバック内で不正確さを補正する必要がある場合, SDL_GetTicksNS()またはSDL_GetPerformanceCounter()を使って現在の時刻に注目する必要がある.

スレッドセーフ

この関数はどのスレッドからも安全に呼べる.

バージョン

SDL 3.2.0以降

関連項目

SDL Wikiへのリンク

SDL_AddTimer - SDL Wiki