SDLを使うためには, 他のほとんどの関数の前にSDL_Init()を呼ぶ必要がある. SDL_Init()の役割は, SDLライブラリを正常に初期化し, 要求に応じて個別のサブシステムを開始することである.
ファイルI/Oとスレッドサブシステムはデフォルトで初期化される.
他のサブシステムを使うときは個別に指定して初期化しなければならない.
論理和で複数のサブシステムを指定できる.
例: SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO);
デフォルトの2つに加え, ビデオとオーディオ, そしてイベントサブシステムを初期化する.
イベントはビデオサブシステムの初期化で暗黙のうちに初期化される.
いくつかのOSでは, SDL_Init()はSDL_main()が定義されていなければ失敗する. あらかじめSDL_SetMainReady()を呼べば, この失敗を回避できる. しかし, 不正な初期化はプログラムをクラッシュさせ, 調査を難しくするため, ユーザがSDL_SetMainReady()を呼ぶときは注意する必要がある.
デフォルトのものを含むサブシステムを安全に終了させるために, SDLアプリケーションが終了する前にSDL_Quit()を呼ぶ必要がある.
SDL_Quit()を使う場合は, 自動的に全てのサブシステムを終了するため, 個別に指定する必要はない.