D3D11_SIGNATURE_PARAMETER_DESC 結構 (d3d11shader.h)

描述著色器簽章。

語法

typedef struct _D3D11_SIGNATURE_PARAMETER_DESC {
  LPCSTR                      SemanticName;
  UINT                        SemanticIndex;
  UINT                        Register;
  D3D_NAME                    SystemValueType;
  D3D_REGISTER_COMPONENT_TYPE ComponentType;
  BYTE                        Mask;
  BYTE                        ReadWriteMask;
  UINT                        Stream;
  D3D_MIN_PRECISION           MinPrecision;
} D3D11_SIGNATURE_PARAMETER_DESC;

成員

SemanticName

類型: LPCSTR

個別參數位符串,可識別數據的使用方式。 如需詳細資訊,請參閱 語意

SemanticIndex

類型: UINT

修改語意的語意索引。 用來區分使用相同語意的不同參數。

Register

類型: UINT

將包含此變數數據的緩存器。

SystemValueType

類型: D3D_NAME

D3D_NAME型別值,識別可決定特定管線階段功能的預先定義字串。

ComponentType

類型: D3D_REGISTER_COMPONENT_TYPE

D3D_REGISTER_COMPONENT_TYPE型別值,識別儲存在緩存器中的每一元件數據類型。 每個快取器最多可以儲存四個元件的數據。

Mask

類型: BYTE

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

ReadWriteMask

類型: BYTE

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

Stream

類型: UINT

指出幾何著色器用於簽章參數的數據流。

MinPrecision

類型: D3D_MIN_PRECISION

D3D_MIN_PRECISION型別值,表示所需的最小插補精確度。 如需詳細資訊,請參閱 使用 HLSL 最小精確度

備註

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

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

呼叫 ID3D11ShaderReflection::GetInputParameterDesc 之類的 API,從著色器或效果取得著色器簽章。

規格需求

需求
標頭 d3d11shader.h

另請參閱

著色器結構