다음을 통해 공유


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 호출은 셰이더 서명의 유효성을 검사합니다(예: D3D10CompileShaderD3D10CompileEffectFromMemory). 즉, 한 셰이더의 출력 서명(예: 꼭짓점 셰이더)과 다른 셰이더의 입력 서명(예: 픽셀 셰이더)을 비교합니다. 이렇게 하면 셰이더가 해당 데이터를 사용하는 다운스트림 셰이더와 호환되는 데이터를 출력합니다. 호환된다는 것은 셰이더 서명이 이전 셰이더 단계의 정확히 일치하는 하위 집합임을 의미합니다. 정확한 일치는 매개 변수 형식 및 의미 체계가 정확히 일치해야 한다는 것을 의미합니다. 하위 집합은 다운스트림 단계에서 필요하지 않은 매개 변수가 셰이더 서명에 해당 매개 변수를 포함할 필요가 없음을 의미합니다.

ID3D10ShaderReflection::GetInputParameterDesc 또는 ID3D10EffectShaderVariable::GetInputSignatureElementDesc와 같은 API를 호출하여 셰이더 또는 효과에서 셰이더 서명을 가져옵니다.

요구 사항

요구 사항
헤더 d3d10shader.h

추가 정보

셰이더 구조체