Поделиться через


структура 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

См. также раздел

Структуры шейдеров