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

SDL_RenderPresent

レンダリングの結果を画面に反映する

ヘッダ

SDL3/SDL_render.h

構文

bool SDL_RenderPresent(SDL_Renderer *renderer);

引数

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

戻り値

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

詳細

SDLのレンダリング関数は背景バッファを操作する. つまり, SDL_RenderLine()のようなレンダリング関数を呼んでも, 背景バッファに線が描かれるだけで, 直接画面には描かれない. グラフィックを描いた後, 背景バッファを画面に反映させる必要がある. よって, SDLレンダリングAPIを使う場合は, フレームを全て描き, そしてこの関数をフレームごとに呼んでユーザに見せる必要がある.

そのため, SDLレンダリングAPIを使用する場合は, フレームとして必要なものを全て描き, その後でこの関数を1フレームごとに呼んでユーザに描画結果を表示することになる.

背景バッファは反映した後は無効になると考える必要がある. つまり, 前のフレームのグラフィックが残っているとみなしてはならない. 全てのピクセルを上書きする場合でも, 各フレームを描く前にSDL_RenderClear()を呼んで背景バッファを初期化することを強く推奨する.

テクスチャへのレンダリングの場合, テクスチャに描画した後でSDL_RenderPresentを呼ぶ必要はなく, かつ呼んではならない. テクスチャには背景バッファの概念がないため, レンダーターゲットをデフォルトに戻すにはSDL_SetRenderTarget(renderer, NULL)を呼ぶだけでよい. テクスチャのレンダリング中にSDL_RenderPresentを呼ぶと失敗する.

スレッドセーフ

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

バージョン

SDL 3.2.0以降

関連項目

SDL Wikiへのリンク

SDL_RenderPresent - SDL Wiki