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

SDL_PollEvent

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

ヘッダ

SDL3/SDL_events.h

構文

bool SDL_PollEvent(SDL_Event *event);

引数

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

戻り値

(bool) 未処理のイベントがある場合は真, ない場合は偽を戻す.

詳細

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

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

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

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

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

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

    // ここで別の処理(描画など)を行う
}

スレッドセーフ

この関数を呼べるのはメインスレッドのみである.

バージョン

SDL 3.2.0以降

関連項目

SDL Wikiへのリンク

SDL_PollEvent - SDL Wiki