bool SDL_Init(SDL_InitFlags flags);
SDL_InitFlags | flags | サブシステム初期化フラグ |
SDL_Init()は単純にSDL_InitSubSystem()に処理を渡している. よって, これら2つは入れ替えられる. コードが読みやすさを考慮するならば, SDL_InitSubSystem()の方がよいかもしれない.
ファイルI/O(例えばSDL_IOFromFile)とスレッドサブシステムは, 何も指定しなくても初期化される. メッセージボックス(SDL_ShowSimpleMessageBox()もビデオサブシステムを初期化せずに使える. 他のサブシステムを使うときは指定して初期化しなければならない.
ログも初期化せずに使うことができる.
flagsはSDL_InitFlagsの論理和(OR)で複数設定できる:
サブシステムの初期化は参照カウントされている. そのため, 手動で正常にサブシステムを終了させるためには, それぞれのSDL_InitSubSystem()に対してSDL_QuitSubSystem()を呼ぶ(またはSDL_Quit()を呼んで強制的に終了する)必要がある. サブシステムが既に読み込まれている場合は, この関数を呼ぶと参照カウントが加算される.
一部の基本的なメタデータは, アプリケーションがSDL_Initを呼ぶ前に, SDL_SetAppMetadata()またはSDL_SetAppMetadataProperty()で通知する必要がある.