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

SDL_CreateGPUShader

グラフィックパイプラインを生成するとき使用されるシェーダを生成する

ヘッダ

SDL3/SDL_gpu.h

構文

SDL_GPUShader * SDL_CreateGPUShader(SDL_GPUDevice *device, const SDL_GPUShaderCreateInfo *createinfo);

引数

SDL_GPUDevice *deviceGPUコンテキスト
const SDL_GPUShaderCreateInfo *createinfo生成するシェーダの状態を表す構造体

戻り値

(SDL_GPUShader *) 成功のときシェーダオブジェクトを戻す. 失敗のときNULLを戻す. SDL_GetError()を呼んで詳細を知ることができる.

詳細

シェーダリソースのバインドはシェーダの形式に依存する特定の順序で記述する必要がある.

SPIR-Vシェーダは次のリソースセットを使用する:

頂点シェーダの場合:

フラグメントシェーダの場合:

DXBCまたはDXILシェーダは次のレジスタの順で使用する:

ピクセルシェーダの場合:

MSL/metallibは次の順で使用する:

D3D12では, シェーダセマンティクスは他のシステム値のセマンティクスとは違い重要ではなく, またSDLの実装を使いやすくするためにシステム値のセマンティクス以外は全てTEXCOORDであることを想定している. シェーダのソース言語としてHLSLを使用する場合, 頂点セマンティクスはTEXCOORD0で始まりTEXCOORD1, TEXCOORD2, ...のように1ずつ増加する必要がある. セマンティクスの接頭語をTEXCOORD以外に変更したい場合はSDL_CreateGPUDeviceWithProperties()SDL_PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRINGを使用すること.

その他の任意のプロパティはpropsで設定できる. 対応するプロパティ:

バージョン

SDL 3.2.0以降

関連項目

SDL Wikiへのリンク

SDL_CreateGPUShader - SDL Wiki