目次 - API(機能別) - タイマ - SDL_TICKS_PASSED

SDL_TICKS_PASSED

SDL_GetTicksが戻した32ビットの経過時間(ミリ秒)を比較するマクロ. SDL_GetTicksの値は32ビットのミリ秒のため, 約49日で巻き戻ってしまう. このマクロはこの問題を適切に回避しているため, 49日以内の比較であれば正しく処理できる.

境界線上の問題を完全に回避するためには, 代わりにSDL_GetTicks64を使うこと. このマクロにSDL_GetTicks64が戻した値を渡してはならない.

構文

SDL_TICKS_PASSED(A, B)

引数

A最初の経過時間
B次の経過時間

戻り値

AがBを超えていれば真を戻す.

サンプルコード

/* 100ミリ秒待つならば, 次のようにすればよい: */
Uint32 timeout = SDL_GetTicks() + 100;
while (!SDL_TICKS_PASSED(SDL_GetTicks(), timeout)) {
    /* ... ここで時間が経過するまでの処理を行う */
}

バージョン

SDL 2.0.1以降

関連項目(関数)

SDL_GetTicks

SDL Wikiへのリンク

SDL_TICKS_PASSED - SDL Wiki