SDL_AppResult SDL_AppIterate(void *appstate);
| void * | appstate | SDL_AppInitが任意で渡したポインタ |
SDL_MAIN_USE_CALLBACKSを使用する場合, アプリケーションはこの関数を実装すること. 標準の"main"関数を使用する場合, この関数をSDLに提供してはならない.
この関数はSDL_AppInitがSDL_APP_CONTINUEを戻した後, SDLから繰り返し呼ばれる. この関数ではプログラムのメインループの反復処理を行う必要がある. 通常は状態の更新や, 新しいビデオフレームの描画などを行う.
一部の環境では, この関数はディスプレイの更新周期で呼ばれる(アプリケーションの実行中でも変更される場合がある). この関数が呼ばれる周期には保証がない. 最後の反復から経過した時間が必要な場合はSDLタイマ関数を使用する必要がある.
この関数でSDLイベントキューの処理を行う必要はない. SDLはイベントを受信したイベントをSDL_AppEventに送り, この関数が実行されるときはイベントキューはほとんどの場合は空である.
この関数で無限ループに入ってはならない. ここでは反復処理を行い, その後に戻る必要がある.
appstate引数はSDL_AppInit()が任意で渡したポインタである.
これを設定しなかった場合, ポインタはNULLになる.
この関数がSDL_APP_CONTINUEを戻した場合, アプリケーションは通常通りに進み, アプリケーションの実行中のSDL_AppIterateとSDL_AppIterateの呼び出しの繰り返しが続く. SDL_APP_FAILUREを戻した場合, SDLはSDL_AppQuitを呼び, エラーを報告する終了コードでプロセスを終了させる. SDL_APP_SUCCESSを戻した場合, SDLはSDL_AppQuitを呼び, 正常終了を報告する終了コードでプロセスを終了させる.
この関数は, SDLによってメインスレッドで呼ばれる.