共用方式為


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。 每個快取器最多可以儲存四個元件的數據。

Mask

類型: BYTE

遮罩,表示使用緩存器哪些元件。

ReadWriteMask

類型: BYTE

遮罩,指出如果簽章是輸出簽章) ,或簽章是輸入簽章) ,則表示指定的元件永遠不會寫入 (。如果簽章是輸入簽章,則一律讀取 (。 遮罩是 D3D10_REGISTER_COMPONENT_TYPE 值的組合。

備註

著色器可以接受 n 個輸入,而且可以產生 m 輸出。 輸入 (或輸出的順序) 參數、其相關聯的類型,以及構成著色器簽章的任何附加語意。 每個著色器都有輸入和輸出簽章。

編譯著色器或效果時,某些 API 會呼叫驗證著色器簽章, (例如 D3D10CompileShaderD3D10CompileEffectFromMemory) 。 也就是說,他們會比較一個著色器的輸出簽章 (,例如頂點著色器) ,以及另一個著色器的輸入簽章, (像是圖元著色器) 。 這可確保著色器輸出與取用該數據的下游著色器相容的數據。 相容表示著色器簽章是先前著色器階段的完全相符子集。 完全相符表示參數類型和語意必須完全相符。 子集表示下游階段不需要的參數,不需要在其著色器簽章中包含該參數。

藉由呼叫 ID3D10ShaderReflection::GetInputParameterDescID3D10EffectShaderVariable::GetInputSignatureElementDesc 等 API,從著色器或效果取得著色器簽章。

規格需求

需求
標頭 d3d10shader.h

另請參閱

著色器結構