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

SDL_BeginGPURenderPass

コマンドバッファのレンダーパスを開始する

ヘッダ

SDL3/SDL_gpu.h

構文

SDL_GPURenderPass * SDL_BeginGPURenderPass(SDL_GPUCommandBuffer *command_buffer, const SDL_GPUColorTargetInfo *color_target_infos, Uint32 num_color_targets, const SDL_GPUDepthStencilTargetInfo *depth_stencil_target_info);

引数

SDL_GPUCommandBuffer *command_bufferコマンドバッファ
const SDL_GPUColorTargetInfo *color_target_infosテクスチャサブリソースと, それと一致する消去の値とロード/ストア操作の配列
Uint32num_color_targetscolor_target_infos配列のカラーターゲットの数
const SDL_GPUDepthStencilTargetInfo *depth_stencil_target_infoテクスチャサブリソースと, それと一致する消去の値とロード/ストア操作. NULLも可

戻り値

(SDL_GPURenderPass *) レンダーパスハンドルを戻す.

詳細

レンダーパスは, その最中でレンダリングされるテクスチャサブリソース(または3Dテクスチャの場合は深度スライス)と, それに対応する消去の値とロード/ストア時の操作のセットで構成されている. グラフィックパイプラインと関連付けられた全ての操作は, レンダーパス内に置かれる必要がある. この関数が呼ばれたとき, 自動的にデフォルトのビューポートとシザーの状態が設定される. このレンダーパスが終了するまで, 別のレンダーパスの開始, コンピュートパスの開始, パスのコピーを行うことはできない.

テクスチャサブリソースに内容が書き込まれる前にSDL_GPU_LOADOP_LOADを使用した場合, 結果は未定義となる. SDL_GPU_LOADOP_CLEARはレンダリングの前に単一の値をテクスチャサブリソースの内容に書き込む. これはSDL_GPU_STOREOP_STOREを使用した空のレンダーパスでテクスチャを消去する場合に良いが, 一般的には独立した操作で消去するのではなく, 何かを行うレンダーパスの最初に行うことを考えた方がよい.

D3D12の場合の注意

D3D12でdebug_modeが有効な場合, カラーテクスチャまたは深度/ステンシルテクスチャをクリアすると, 実行時に次の様なCLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUEまたはCLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUEの警告が発生する場合がある:

D3D12 WARNING: ... The clear values do not match those passed to resource creation. The clear operation is typically slower as a result; but will still clear to the desired value.

この警告はテクスチャを生成するとき次のプロパティをSDL_GPUTextureCreateInfopropsにレンダーパスでクリアするカラー/深度/ステンシルの値と同じ値を設定すると避けることができる.

カラーテクスチャの場合:

深度/ステンシルテクスチャの場合:

バージョン

SDL 3.2.0以降

関連項目

SDL Wikiへのリンク

SDL_BeginGPURenderPass - SDL Wiki