目次 - API(機能別) - 初期化と終了 - SDL_InitSubSystem

SDL_InitSubSystem

サブシステムを個別に初期化する.

構文

int SDL_InitSubSystem(Uint32 flags)

引数

flagsSDL_Init()と同じ

戻り値

成功のとき0, エラーのとき負の数のエラーコードを戻す. SDL_GetError()を呼んで詳細を知ることができる.

サンプルコード

/* ジョイスティックとビデオを分けて初期化する */
SDL_Init(SDL_INIT_VIDEO);

SDL_Window* window = SDL_CreateWindow("A Window", 
    SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480,
    SDL_WINDOW_FULLSCREEN);
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, 0);

/* ここでビデオの処理を行う */

/* ジョイスティックサブシステムを初期化する */
SDL_InitSubSystem(SDL_INIT_JOYSTICK);

/* ここでビデオとジョイスティックの処理を行う */

/* 両方のシステムを終了する */
SDL_Quit();

詳細

SDL_Init()で初期化した後でもSDL_InitSubSystem()で未初期化のサブシステムを初期化することができる.

SDL_Init()はアサーションとクラッシュ保護を初期化し, その後SDL_InitSubSystem()を呼んでいる. それらの保護を回避したい場合は直接SDL_InitSubSystem()を呼ぶとよい.

サブシステムの初期化は参照カウントされている. そのため, 手動で正常にサブシステムを終了させるためには, それぞれのSDL_InitSubSystem()に対してSDL_QuitSubSystem()を呼ぶ(またはSDL_Quit()を呼んで強制的に終了する)必要がある. サブシステムが既に読み込まれている場合は, この関数を呼ぶと参照カウントが加算される.

関連項目(関数)

SDL_Init
SDL_Quit
SDL_QuitSubSystem

SDL Wikiへのリンク

SDL_InitSubSystem - SDL Wiki