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

SDL_Init

SDLライブラリを初期化する. 他のほとんどのSDLの関数を呼び出す前にこの関数を呼ぶ必要がある.

構文

int SDL_Init(Uint32 flags)

引数

flagsサブシステム初期化フラグ

戻り値

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

サンプルコード

#include "SDL.h"

int main(int argc, char* argv[]) {
    if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO) != 0) {
        SDL_Log("SDLを初期化できなかった: %s", SDL_GetError());
        return 1;
    }

    /* ... */

    SDL_Quit();
    return 0;
}

詳細

SDL_Init()は単純にSDL_InitSubSystem()に処理を渡している. よって, これら2つは入れ替えられる. コードが読みやすさを考慮するならば, SDL_InitSubSystem()の方がよいかもしれない.

ファイルI/O, そしてスレッドサブシステムはデフォルトで初期化される. 他のサブシステムを使うときは指定して初期化しなければならない.

ログも初期化せずに使うことができる.

flagsは以下の項目の論理和で複数設定できる:
SDL_INIT_TIMERタイマ サブシステム
SDL_INIT_AUDIOオーディオ サブシステム
SDL_INIT_VIDEOビデオ サブシステム. イベントサブシステムも自動的に初期化される
SDL_INIT_JOYSTICKジョイスティック サブシステム. イベントサブシステムも自動的に初期化される
SDL_INIT_HAPTICハプティクス(感覚フィードバック) サブシステム
SDL_INIT_GAMECONTROLLERコントローラー サブシステム. ジョイスティックサブシステムも自動的に初期化される
SDL_INIT_EVENTSイベント サブシステム
SDL_INIT_EVERYTHING上記のサブシステムの全て
SDL_INIT_NOPARACHUTE互換性のために存在する. このフラグは機能しない

個別にサブシステムを初期化したい場合は, SDL_Init(0)を呼び, 後で必要なflagsを指定してSDL_InitSubSystem()を呼ぶとよい.

関連項目(関数)

SDL_InitSubSystem
SDL_Quit
SDL_SetMainReady
SDL_WasInit

SDL Wikiへのリンク

SDL_Init - SDL Wiki