SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[]);
| void ** | appstate | 後のエントリーポイントで任意で使用できるポインタ |
| int | argc | ANSI-Cスタイルのmain関数のargc. argvの要素数 |
| char ** | argv | ANSI-Cスタイルのmain関数のargv. コマンドライン引数の配列 |
SDL_MAIN_USE_CALLBACKSを使用する場合, アプリケーションはこの関数を実装すること. 標準の"main"関数を使用する場合, この関数をSDLに提供してはならない.
この関数は起動時に一度だけSDLに呼ばれる.
ウィンドウの作成やオーディオデバイスのオープンなど, 必要なことは全てこの関数で初期化する必要がある.
argcとargv引数は, 標準の"main"関数と同様の値を取る.
この関数で無限ループに入ってはならない. ここでは必要な一度のセットアップを行い, その後に戻る必要がある.
アプリケーションは任意でポインタを*appstateに設定することができる.
このポインタは, 後で呼び出す各エントリーポイントに渡されるため, これを利用するとアプリケーションの状態をグローバル変数を使わずに関数間で共有することができる.
これを設定しない場合, 後のエントリーポイントではポインタはNULLになる.
この関数がSDL_APP_CONTINUEを戻した場合, アプリケーションは通常通りに進み, アプリケーションの実行中のSDL_AppIterateとSDL_AppEventの呼び出しの繰り返しが始まる. SDL_APP_FAILUREを戻した場合, SDLはSDL_AppQuitを呼び, エラーを報告する終了コードでプロセスを終了させる. SDL_APP_SUCCESSを戻した場合, SDLはSDL_AppQuitを呼び, 正常終了を報告する終了コードでプロセスを終了させる.
この関数は, SDLによってメインスレッドで呼ばれる.