目次 - SDL 3.0 API(機能別) - 2Dレンダリング - SDL_FlushRenderer

SDL_FlushRenderer

レンダリングコンテキストに保留中のコマンドと状態を強制的に掃き出す

ヘッダ

SDL3/SDL_render.h

構文

bool SDL_FlushRenderer(SDL_Renderer *renderer);

引数

SDL_Renderer *rendererレンダリングコンテキスト

戻り値

(bool) 成功のとき真, 失敗のとき偽を戻す. SDL_GetError()を呼んで詳細を知ることができる.

詳細

SDL_Rendererを使用した後に追加でOpenGL/Direct3D/Metal/その他を直接呼び出そうとしない限り, この関数は必要ない. (そして, 本来は使うべきではない.)

この関数は極めて特殊な場合のためにある: SDLのレンダーAPIを使っていて, SDLレンダーAPIの呼び出しに追加してOpenGL/Direct3D/その他を呼び出す場合である. この場合, SDLレンダーAPIと, 連携して使用する下位レベルAPIの間で, SDL_FlushRenderer()を呼ぶ必要がある.

これ以外の場合, この関数は不要である.

この関数を呼び出すと, SDLは1つのバッチのキューに入れられた保留中のレンダリングを全て掃き出し, 内部にキャッシュされた状態を無効状態にマークする. そのため, 後で状態を最初からやり直す準備が行われる.

その結果, SDL以外でレンダリングをする前にSDLレンダラの状態を保存する必要はない. しかし, Direct3DやOpenGLによる予期しない状態の変化で混乱が生じる可能性がある. 特定の状態を保護する必要があるならば, 必要性を判断し, 状態の変化に備えるべきである.

スレッドセーフ

この関数を呼べるのはメインスレッドのみである.

バージョン

SDL 3.2.0以降

SDL Wikiへのリンク

SDL_FlushRenderer - SDL Wiki