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型別值,表示所需的最小插補精確度。 如需詳細資訊,請參閱 使用 HLSL 最小精確度。
著色器可以接受 n 個輸入,而且可以產生 m 輸出。 輸入 (或輸出的順序) 參數、其相關聯的類型,以及構成著色器簽章的任何附加語意。 每個著色器都有輸入和輸出簽章。
編譯著色器或效果時,某些 API 會呼叫驗證著色器簽章。也就是說,它們會比較一個著色器的輸出簽章 (,例如頂點著色器的輸出簽章,例如頂點著色器) ,以及另一個著色器的輸入簽章 (,例如圖元著色器) 。 這可確保著色器輸出與取用該數據的下游著色器相容的數據。 相容表示著色器簽章是先前著色器階段的完全相符子集。 完全相符表示參數類型和語意必須完全相符。 子集表示下游階段不需要的參數,不需要在其著色器簽章中包含該參數。
呼叫 ID3D11ShaderReflection::GetInputParameterDesc 之類的 API,從著色器或效果取得著色器簽章。
需求 | 值 |
---|---|
標頭 | d3d11shader.h |