структура 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 проверяют подписи шейдера (например , D3D10CompileShader и D3D10CompileEffectFromMemory). То есть они сравнивают выходную сигнатуру одного шейдера (например, вершинного шейдера) с входной сигнатурой другого шейдера (например, пиксельного шейдера). Это гарантирует, что шейдер выводит данные, совместимые с подчиненным шейдером, который использует эти данные. Совместимость означает, что подпись шейдера является подмножеством точного соответствия предыдущего этапа шейдера. Точное соответствие означает, что типы параметров и семантика должны точно совпадать. Подмножество означает, что параметр, который не требуется для подчиненного этапа, не должен включать этот параметр в сигнатуру шейдера.
Получение подписи шейдера из шейдера или эффекта путем вызова ТАКИХ API , как ID3D10ShaderReflection::GetInputParameterDesc или ID3D10EffectShaderVariable::GetInputSignatureElementDesc.
Требования
Требование | Значение |
---|---|
Заголовок | d3d10shader.h |