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

# SDL_AddEventWatch

イベントがキューに入った場合のコールバックを追加する

## 構文

`void SDL_AddEventWatch(SDL_EventFilter filter, void* userdata)`

## 引数

filter | イベント発生時に呼ばれる関数 (詳細を参照すること)
userdata | filterへ渡されるポインタ

## 詳細

filterの関数プロトタイプは

`int YourEventFilter(void* userdata, SDL_Event* event)`

YourEventFilterは任意の関数名で, パラメータは次の通りである.

userdata | SDL_AddEventWatch()で設定したuserdata
event | コールバックを引き起こしたイベント

filterはイベントが発生したとき呼ばれ, その戻り値は無視される.

注意: 別スレッドで動作する場合, イベントフィルタ関数で行うことには細心の注意を払うこと!

シグナル(例えばSIGINT)で終了イベントが発生した場合, まず内部キューを迂回してイベント監視コールバックに届けられ, そして次にイベントポーリングに届く.

メモ: コールバックはユーザのSDL_PushEvent()で発生させたイベントでも呼ばれる. しかし, 無効なイベントや, SDL_SetEventFilter()でコールバックフィルタを設定したイベントや, SDL_PeepEvents()でユーザが発生されたイベントの場合は呼ばれない.

## 関連項目(関数)

SDL_DelEventWatch
SDL_SetEventFilter

## SDL Wikiへのリンク

SDL_AddEventWatch - SDL Wiki