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