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 참조하세요. 각 레지스터는 최대 4개의 데이터 구성 요소를 저장할 수 있습니다.
Mask
형식: BYTE
레지스터의 어떤 구성 요소가 사용되는지 나타내는 마스크입니다.
ReadWriteMask
형식: BYTE
지정된 구성 요소가 기록되지 않는지(서명이 출력 서명인 경우) 항상 읽는지(서명이 입력 서명인 경우)를 나타내는 마스크입니다. 마스크는 D3D10_REGISTER_COMPONENT_TYPE 값의 조합입니다.
설명
셰이더는 n개의 입력을 사용할 수 있으며 m 출력을 생성할 수 있습니다. 입력(또는 출력) 매개 변수, 관련 형식 및 연결된 의미 체계의 순서가 셰이더 서명을 구성합니다. 각 셰이더에는 입력 및 출력 서명이 있습니다.
셰이더 또는 효과를 컴파일할 때 일부 API 호출은 셰이더 서명의 유효성을 검사합니다(예: D3D10CompileShader 및 D3D10CompileEffectFromMemory). 즉, 한 셰이더의 출력 서명(예: 꼭짓점 셰이더)과 다른 셰이더의 입력 서명(예: 픽셀 셰이더)을 비교합니다. 이렇게 하면 셰이더가 해당 데이터를 사용하는 다운스트림 셰이더와 호환되는 데이터를 출력합니다. 호환된다는 것은 셰이더 서명이 이전 셰이더 단계의 정확히 일치하는 하위 집합임을 의미합니다. 정확한 일치는 매개 변수 형식 및 의미 체계가 정확히 일치해야 한다는 것을 의미합니다. 하위 집합은 다운스트림 단계에서 필요하지 않은 매개 변수가 셰이더 서명에 해당 매개 변수를 포함할 필요가 없음을 의미합니다.
ID3D10ShaderReflection::GetInputParameterDesc 또는 ID3D10EffectShaderVariable::GetInputSignatureElementDesc와 같은 API를 호출하여 셰이더 또는 효과에서 셰이더 서명을 가져옵니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | d3d10shader.h |