D3D10_SIGNATURE_PARAMETER_DESC構造体 (d3d10shader.h)
シェーダー署名について説明します。
構文
typedef struct _D3D10_SIGNATURE_PARAMETER_DESC {
LPCSTR SemanticName;
UINT SemanticIndex;
UINT Register;
D3D10_NAME SystemValueType;
D3D10_REGISTER_COMPONENT_TYPE ComponentType;
BYTE Mask;
BYTE ReadWriteMask;
} D3D10_SIGNATURE_PARAMETER_DESC;
メンバー
SemanticName
種類: LPCSTR
データの使用方法を識別するパラメーターごとの文字列。 「セマンティクス (DirectX HLSL)」を参照してください。
SemanticIndex
型: UINT
セマンティックを変更するセマンティック インデックス。 同じセマンティックを使用するさまざまなパラメーターを区別するために使用されます。
Register
型: UINT
この変数のデータを格納するレジスタ。
SystemValueType
種類: D3D10_NAME
特定のパイプライン ステージの機能を決定する定義済みの文字列。 「D3D10_NAME」を参照してください。
ComponentType
種類: D3D10_REGISTER_COMPONENT_TYPE
レジスタに格納されるコンポーネントごとのデータ型。 「D3D10_REGISTER_COMPONENT_TYPE」を参照してください。 各レジスタには、最大 4 つのコンポーネントのデータを格納できます。
Mask
型: BYTE
レジスタのどのコンポーネントが使用されているかを示すマスク。
ReadWriteMask
型: BYTE
特定のコンポーネントが書き込まれなかった (署名が出力署名の場合) か、常に読み取られた (署名が入力署名の場合) かを示すマスク。 マスクは、 D3D10_REGISTER_COMPONENT_TYPE 値の組み合わせです。
注釈
シェーダーは n 個の入力を受け取ることができ、m 出力を生成できます。 入力 (または出力) パラメーターの順序、関連する型、およびアタッチされたセマンティクスによってシェーダー署名が構成されます。 各シェーダーには、入力と出力シグネチャがあります。
シェーダーまたは効果をコンパイルする場合、一部の API 呼び出しではシェーダーシグネチャ ( D3D10CompileShader や D3D10CompileEffectFromMemory など) が検証されます。 つまり、1 つのシェーダーの出力シグネチャ (頂点シェーダーなど) と、別のシェーダーの入力シグネチャ (ピクセル シェーダーなど) を比較します。 これにより、シェーダーは、そのデータを使用しているダウンストリーム シェーダーと互換性のあるデータを出力します。 互換性があるということは、シェーダーシグネチャが前のシェーダー ステージの完全に一致するサブセットであることを意味します。 完全一致とは、パラメーターの型とセマンティクスが完全に一致する必要があるということです。 サブセットは、ダウンストリーム ステージで必要ないパラメーターが、そのパラメーターをシェーダーシグネチャに含める必要がないことを意味します。
ID3D10ShaderReflection::GetInputParameterDesc や ID3D10EffectShaderVariable::GetInputSignatureElementDesc などの API を呼び出して、シェーダーまたは効果からシェーダーシグネチャを取得します。
要件
要件 | 値 |
---|---|
Header | d3d10shader.h |