目次 - 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