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


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

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

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