int SDL_PollEvent(SDL_Event* event)
event | キューから得たイベントを代入するSDL_EventまたはNULL |
eventがNULLでない場合, イベントはキューから削除され, SDL_Event構造体のeventに代入される. 戻った1は, 削除されSDLイベント構造体に収められたこのイベントのことを指している――続くイベントのことではない.
eventがNULLの場合, イベントがキューにある場合1を戻すが, イベントは削除されない.
この関数は暗黙のうちにSDL_PumpEvents()を呼んでいる. この関数はビデオモードを設定したスレッドのみで呼べる.
SDL_PollEvent()はシステムイベントを受信する望ましい方法である. この関数を使えば, メインループでイベントが発生するのを待つことなく処理できる.
一般的には1フレームごとに, 通常はゲームの状態を更新する前の最初の処理として全イベントを処理する:
while (1) {
SDL_Event event;
while (SDL_PollEvent(&event)) { // 全てのイベントがハンドルされるまで獲得する!
// ここでイベントを処理する
}
// ここで別の処理(描画など)を行う
}