目次 - SDL 3.0 API(機能別) - メイン - SDL_AppIterate

SDL_AppIterate

メインコールバックを使用する場合, アプリケーションが実装する反復処理エントリーポイント

ヘッダ

SDL3/SDL_main.h

構文

SDL_AppResult SDL_AppIterate(void *appstate);

引数

void *appstateSDL_AppInitが任意で渡したポインタ

戻り値

(SDL_AppResult) エラーで終了させるときSDL_APP_FAILURE, 成功で終了させるときSDL_APP_SUCCESS, 継続するときSDL_APP_CONTINUEを戻す.

詳細

SDL_MAIN_USE_CALLBACKSを使用する場合, アプリケーションはこの関数を実装すること. 標準の"main"関数を使用する場合, この関数をSDLに提供してはならない.

この関数はSDL_AppInitSDL_APP_CONTINUEを戻した後, SDLから繰り返し呼ばれる. この関数ではプログラムのメインループの反復処理を行う必要がある. 通常は状態の更新や, 新しいビデオフレームの描画などを行う.

一部の環境では, この関数はディスプレイの更新周期で呼ばれる(アプリケーションの実行中でも変更される場合がある). この関数が呼ばれる周期には保証がない. 最後の反復から経過した時間が必要な場合はSDLタイマ関数を使用する必要がある.

この関数でSDLイベントキューの処理を行う必要はない. SDLはイベントを受信したイベントをSDL_AppEventに送り, この関数が実行されるときはイベントキューはほとんどの場合は空である.

この関数で無限ループに入ってはならない. ここでは反復処理を行い, その後に戻る必要がある.

appstate引数はSDL_AppInit()が任意で渡したポインタである. これを設定しなかった場合, ポインタはNULLになる.

この関数がSDL_APP_CONTINUEを戻した場合, アプリケーションは通常通りに進み, アプリケーションの実行中のSDL_AppIterateSDL_AppIterateの呼び出しの繰り返しが続く. SDL_APP_FAILUREを戻した場合, SDLはSDL_AppQuitを呼び, エラーを報告する終了コードでプロセスを終了させる. SDL_APP_SUCCESSを戻した場合, SDLはSDL_AppQuitを呼び, 正常終了を報告する終了コードでプロセスを終了させる.

この関数は, SDLによってメインスレッドで呼ばれる.

スレッドセーフ

メインスレッド以外でイベントをプッシュした場合, この関数はSDL_AppEvent()と平行して呼ばれる場合がある.

バージョン

SDL 3.2.0以降

関連項目

SDL Wikiへのリンク

SDL_AppIterate - SDL Wiki