目次 - SDL 3.0 API(機能別) - 3DレンダリングとGPUコンピューティング - SDL_AcquireGPUSwapchainTexture

SDL_AcquireGPUSwapchainTexture

プレゼンテーションで使用するテクスチャを要求する

ヘッダ

SDL3/SDL_gpu.h

構文

bool SDL_AcquireGPUSwapchainTexture(SDL_GPUCommandBuffer *command_buffer, SDL_Window *window, SDL_GPUTexture **swapchain_texture, Uint32 *swapchain_texture_width, Uint32 *swapchain_texture_height);

引数

SDL_GPUCommandBuffer *command_bufferコマンドバッファ
SDL_Window *window要求するウィンドウ
SDL_GPUTexture **swapchain_textureスワップチェーンテクスチャの代入先へのポインタ
Uint32 *swapchain_texture_widthスワップチェーンテクスチャの幅の代入先へのポインタ. NULLも可
Uint32 *swapchain_texture_heightスワップチェーンテクスチャの高さの代入先へのポインタ. NULLも可

戻り値

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

詳細

コマンドバッファでスワップチェーンテクスチャを要求した場合, コマンドバッファが送信されるとき自動的にプレゼンテーションとして送信される. スワップチェーンテクスチャを参照できるのは, それを要求するために使用したコマンドバッファのみである.

この関数は要求中のフレームが多すぎる場合, スワップチェーンテクスチャとしてNULLを戻すことがある. これはエラーではない. このNULLポインタをSDLに返してはならない. 代わりに, これはスワップチェーンが可能になるまで待つための手段と考えるべきである.

この関数を使用すると, レンダリングコンテキストがGPUの処理を待つ間に多くのコマンドバッファが確保され, 結果としてメモリの使用量が増大する場合がある. タイミングの扱いによく慣れている場合を除き, SDL_WaitAndAcquireGPUSwapchainTexture()を使用するべきである.

スワップチェーンテクスチャは実装側で管理されており, ユーザは解放してはならない. この関数はウィンドウを生成したスレッド以外からは呼んではならない.

スレッドセーフ

この関数を呼べるのはウィンドウを生成したスレッドのみである.

バージョン

SDL 3.2.0以降

関連項目

SDL Wikiへのリンク

SDL_AcquireGPUSwapchainTexture - SDL Wiki