目次 - API(機能別) - イベント処理 - SDL_PollEvent

SDL_PollEvent

未処理のイベントをキューから得る

構文

int SDL_PollEvent(SDL_Event* event)

引数

eventキューから得たイベントを代入するSDL_EventまたはNULL

戻り値

未処理のイベントがある場合は1, ない場合は0を戻す.

詳細

eventがNULLでない場合, イベントはキューから削除され, SDL_Event構造体のeventに代入される. 戻った1は, 削除されSDLイベント構造体に収められたこのイベントのことを指している――続くイベントのことではない.

eventがNULLの場合, イベントがキューにある場合1を戻すが, イベントは削除されない.

この関数は暗黙のうちにSDL_PumpEvents()を呼んでいる. この関数はビデオモードを設定したスレッドのみで呼べる.

SDL_PollEvent()はシステムイベントを受信する望ましい方法である. この関数を使えば, メインループでイベントが発生するのを待つことなく処理できる.

一般的には1フレームごとに, 通常はゲームの状態を更新する前の最初の処理として全イベントを処理する:

while (1) {
    SDL_Event event;
    while (SDL_PollEvent(&event)) { // 全てのイベントがハンドルされるまで獲得する!
         // ここでイベントを処理する
    }
    // ここで別の処理(描画など)を行う
}

バージョン

SDL 2.0.0以降

関連項目(関数)

SDL_GetEventFilter
SDL_PeepEvents
SDL_PushEvent
SDL_SetEventFilter
SDL_WaitEvent
SDL_WaitEventTimeout

SDL Wikiへのリンク

SDL_PollEvent - SDL Wiki