目次 - SDL 3.0 API(機能別) - イベント処理
イベント処理
概要
イベントキューの管理を行う.
アプリケーションがSDLイベントキューを扱うことは, ごく一般的であり, 多くの場合は必須である.
ほとんど全ての現実世界と相互作用のある有用な情報(ユーザとコンピュータやアプリケーションとの相互作用, ハードウェアの入出力, 様々な理由によるシステムの変更など)はこれを通して得られる.
アプリケーションは間隔を取って, あるいは新しいフレームのたびに, 前回から新しいイベントが発生していないかチェックし, それを処理または無視する.
一般的にはループで偽を戻すまでSDL_PollEvent()を呼ぶことで行う. (またはメインコールバックを使用する. 次のSDL_AppIterate()を呼ぶまでは, SDL_AppEvent()を呼ぶと1つずつイベントが渡される. この場合はSDL_PollEvent()をまったく使用しない.)
他の処理方法も存在する: SDL_PeepEvents()を使うと, 複雑だがより詳細な処理が行える.
SDL_WaitEvent()はイベントが発生するまでブロックする.
これは性能の低いハードウェア上のプログラムにとって有益になりうる.
SDL_AddEventWatch()で新しいイベント処理のためのコールバックを設定することもできる.
アプリケーションも自由に自身のイベントを生成できる: SDL_PushEventで後で取り出すためにアプリケーションがキューにイベントを入れることができる.
SDL_RegisterEventsでこれらのイベントがシステムの他の部分で使用しないことを保証できる.
関数
- SDL_AddEventWatch - イベントがキューに入った場合のコールバックを追加する
- SDL_EventEnabled - イベントの種類ごとの処理の有無を設定する
- SDL_FilterEvents - 現在のイベントキューに対して指定のフィルタ関数を実行する
- SDL_FlushEvent - イベントキューからイベントを消去する
- SDL_FlushEvents - イベントキューから複数のイベントを消去する
- SDL_GetEventDescription - イベントの人が読むことのできる記述を得る
- SDL_GetEventFilter - 現在のイベントフィルタを得る
- SDL_GetWindowFromEvent - イベントに関連付けられたウィンドウを得る
- SDL_HasEvent - キューに指定のイベントが存在するか調査する
- SDL_HasEvents - キューに指定の範囲のイベントが存在するか調査する
- SDL_PeepEvents - イベントキューのメッセージをチェックし, それらを戻す
- SDL_PollEvent - 未処理のイベントをキューから得る
- SDL_PumpEvents - 入力デバイスから吸い出したイベントをイベントループに加える
- SDL_PushEvent - イベントをキューに加える
- SDL_RegisterEvents - 複数のユーザ定義のイベントの領域を確保し, 先頭のイベントの番号を戻す
- SDL_RemoveEventWatch - SDL_AddEventWatch()で追加されたイベント監視コールバックを削除する
- SDL_SetEventEnabled - イベントの種類ごとの処理の有無を得る
- SDL_SetEventFilter - 内部イベントキューに追加する前に全てのイベントを処理するフィルタを設定する
- SDL_WaitEvent - 次のイベントが発生するまで無制限に待つ
- SDL_WaitEventTimeout - 次のイベントが発生するまで指定の時間(ミリ秒)待つ
型
- SDL_EventFilter - イベントキューを監視するためのコールバック関数の型
構造体
- SDL_AudioDeviceEvent - オーディオデバイスイベントの構造体(event.adevice.*)
- SDL_CameraDeviceEvent - カメラデバイスイベントの構造体(event.cdevice.*)
- SDL_ClipboardEvent - クリップボードイベントの構造体(event.clipboard.*)
- SDL_CommonEvent - 全イベントの共通フィールドの構造体(event.common.*)
- SDL_DisplayEvent - ディスプレイイベントの構造体(event.display.*)
- SDL_DropEvent - ドロップイベントの構造体(event.drop.*)
- SDL_Event - 異なる種類のイベントの情報を持つ共用体
- SDL_GamepadAxisEvent - ゲームパッド移動イベントの構造体(event.gaxis.*)
- SDL_GamepadButtonEvent - ゲームパッドボタンイベントの構造体(event.gbutton.*)
- SDL_GamepadDeviceEvent - ゲームパッドデバイスイベントの構造体(event.gdevice.*)
- SDL_GamepadSensorEvent - ゲームパッドセンサーイベントの構造体(event.gsensor.*)
- SDL_GamepadTouchpadEvent - ゲームパッドタッチイベントの構造体(event.gdevice.*)
- SDL_JoyAxisEvent - ジョイスティック移動イベントの構造体(event.jaxis.*)
- SDL_JoyBallEvent - ジョイスティックボールイベントの構造体(event.jball.*)
- SDL_JoyBatteryEvent - ジョイスティックバッテリー残量変化イベントの情報の構造体(event.jbattery.*)
- SDL_JoyButtonEvent - ジョイスティックボタンイベントの構造体(event.jbutton.*)
- SDL_JoyDeviceEvent - ジョイスティックデバイスイベントの構造体(event.jdevice.*)
- SDL_JoyHatEvent - ジョイスティックハットイベントの構造体(event.jhat.*)
- SDL_KeyboardDeviceEvent - キーボードデバイスイベントの構造体(event.kdevice.*)
- SDL_KeyboardEvent - キーボードイベントの構造体(event.key.*)
- SDL_MouseButtonEvent - マウスボタンイベントの構造体(event.button.*)
- SDL_MouseDeviceEvent - マウスデバイスイベントの構造体(event.mdevice.*)
- SDL_MouseMotionEvent - マウス移動イベントの構造体(event.motion.*)
- SDL_MouseWheelEvent - マウスホイールイベントの構造体(event.wheel.*)
- SDL_PenAxisEvent - 感圧式ペン圧力/角度イベントの構造体(event.paxis.*)
- SDL_PenButtonEvent - 感圧式ペンボタンイベントの構造体(event.pbutton.*)
- SDL_PenMotionEvent - 感圧式ペン移動イベントの構造体(event.pmotion.*)
- SDL_PenProximityEvent - 感圧式ペン接近イベントの構造体(event.pproximity.*)
- SDL_PenTouchEvent - 感圧式ペンタッチイベントの構造体(event.ptouch.*)
- SDL_PinchFingerEvent - ピンチイベントの構造体(event.pinch.*)
- SDL_QuitEvent - 終了要求イベントの構造体(event.quit.*)
- SDL_RenderEvent - レンダライベントの構造体(event.render.*)
- SDL_SensorEvent - センサーイベントの構造体(event.sensor.*)
- SDL_TextEditingCandidatesEvent - IME変換候補イベントの構造体(event.edit_candidates.*)
- SDL_TextEditingEvent - テキスト編集イベントの構造体(event.edit.*)
- SDL_TextInputEvent - テキスト入力イベントの構造体(event.text.*)
- SDL_TouchFingerEvent - タッチイベントの構造体(event.tfinger.*)
- SDL_UserEvent - ユーザ定義イベントの構造体(event.user.*)
- SDL_WindowEvent - ウィンドウイベントの構造体(event.window.*)
列挙体
- SDL_EventAction - SDL_PeepEvents()への要求の列挙体
- SDL_EventType - イベントの種類の列挙体
SDL Wikiへのリンク
CategoryEvents - SDL Wiki