シェーダー コードの処理

ユーザー モード ディスプレイ ドライバーは、シェーダー アセンブラーをプログラムするために、頂点宣言と、個々のピクセル シェーダー コードと頂点シェーダー コード内のトークンを使用します。

ユーザー モード ディスプレイ ドライバーは、Microsoft Direct3D ランタイムがドライバーの CreateVertexShaderFunc 関数と CreatePixelShader 関数をそれぞれ呼び出すときに、頂点シェーダー コードとピクセル シェーダー コードを受け取ります。 ユーザー モード ディスプレイ ドライバーは、ランタイムがドライバーの CreateVertexShaderDecl 関数を呼び出すときに頂点宣言を受け取ります。 頂点宣言は、D3DDDIVERTEXELEMENT 構造体の配列で構成されます。 ユーザー モード ディスプレイ ドライバーは、シェーダー コードと頂点シェーダー宣言をハードウェア固有の形式に変換し、シェーダー コードと宣言をシェーダーおよび宣言ハンドルに関連付けます。 ランタイムは、SetVertexShaderDeclSetVertexShaderFunc、および SetPixelShader 関数の呼び出しで作成されたハンドルを使用して、後続のすべての描画操作で使用されるように頂点シェーダー宣言、頂点シェーダー、ピクセル シェーダーを設定します。

個々のシェーダー コードの形式と各シェーダー コードを構成するトークンの詳細については、「Direct3D シェーダー コード」を参照してください。

メモ アプリケーションが頂点シェーダー、ピクセル シェーダー、および頂点宣言を作成すると、各シェーダー コードと宣言は終了トークンで終わります。 Direct3D ランタイムが頂点シェーダーとピクセル シェーダー作成要求をユーザー モードディスプレイ ドライバーに渡すと、要求に付随する頂点シェーダーコードとピクセル シェーダー コードは終了トークンで終了します。 ただし、ランタイムが頂点宣言の作成要求を渡すと、要求に付随する頂点宣言は終了トークンで終わるわけではありません。