目次 - API(機能別) - ヒント - SDL_AddHintCallback

SDL_AddHintCallback

指定のヒントを監視する関数を追加する

構文

void SDL_AddHintCallback(const char* name, SDL_HintCallback callback, void* userdata)

引数

name監視するヒント
callbackヒントの値が変わったとき呼ぶ関数
userdataコールバック関数に渡すポインタ

サンプルコード

// ヒントの値が新たに"1"になったときメッセージを表示するコールバック関数

void callback(void* f_name, const char* name, const char* oldValue, const char* newValue) {
  if (newValue == (const char*)"1") {
    printf("Hi %s\n", static_cast(f_name));
  }
}

...

SDL_SetHint(SDL_HINT_XINPUT_ENABLED, "0");

...

SDL_Init(SDL_INIT_EVERYTHING);

...

while(SDL_PollEvent(&event) != 0)
{
   // ここでヒントを変更する
}

...

SDL_AddHintCallback(SDL_HINT_XINPUT_ENABLED, callback, const_cast("SDL"));

詳細

callbackの関数プロトタイプは

void SDL_HintCallback(void* userdata, const char* name, const char* oldValue, const char* newValue)

引数は
userdataSDL_AddHintCallback()に渡したuserdata
nameSDL_AddHintCallback()に渡したname
oldValue変更前の値
newValue変更後の値

バージョン

SDL 2.0.0以降

関連項目(関数)

SDL_DelHintCallback

SDL Wikiへのリンク

SDL_AddHintCallback - SDL Wiki