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

SDL_UserEvent

ユーザ定義イベントの構造体(event.user.*)

ヘッダ

SDL3/SDL_events.h

フィールド

Uint32typeSDL_EVENT_USERからSDL_EVENT_LASTまでの値. Uint32なのはSDL_EventType列挙体に存在しないため
Uint32reserved予約
Uint64timestampイベントのナノ秒単位のタイムスタンプ. SDL_GetTicksNS()で設定
SDL_WindowIDwindowID関連するウィンドウ (存在すれば)
Sint32codeユーザ定義のイベントコード
void *data1ユーザ定義のデータポインタ
void *data2ユーザ定義のデータポインタ

詳細

このイベントは特別で, SDLは決して発することはなく, アプリケーションのみが発する. イベントはSDL_PushEvent()でイベントキューにプッシュできる. 構造体のメンバは完全に作成者次第であり, 必要なことはtypeをSDL_RegisterEvents()から得ることのみである.

バージョン

SDL 3.2.0以降

サンプルコード

extern Sint32 my_event_code;
extern void *significant_data;
extern void *some_other_data;

const Uint32 myEventType = SDL_RegisterEvents(1);
if (myEventType != 0) {
    SDL_Event event;
    SDL_zero(event);
    event.type = myEventType;
    event.user.code = my_event_code;
    event.user.data1 = significant_data;
    event.user.data2 = some_other_data;
    SDL_PushEvent(&event);
}

SDL Wikiへのリンク

SDL_UserEvent - SDL Wiki