다음을 통해 공유


ID3D10Device::CreateInputLayout 메서드(d3d10.h)

입력- 어셈블러 단계에 대한 입력 버퍼 데이터를 설명하는 입력 레이아웃 개체를 만듭니다.

구문

HRESULT CreateInputLayout(
  [in]  const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
  [in]  UINT                           NumElements,
  [in]  const void                     *pShaderBytecodeWithInputSignature,
  [in]  SIZE_T                         BytecodeLength,
  [out] ID3D10InputLayout              **ppInputLayout
);

매개 변수

[in] pInputElementDescs

형식: const D3D10_INPUT_ELEMENT_DESC*

입력 어셈블러 단계 입력 데이터 형식의 배열입니다. 각 형식은 요소 설명으로 설명됩니다( D3D10_INPUT_ELEMENT_DESC 참조).

[in] NumElements

형식: UINT

input-elements 배열의 입력 데이터 형식 수입니다.

[in] pShaderBytecodeWithInputSignature

형식: const void*

컴파일된 셰이더에 대한 포인터입니다. 이 포인터를 가져오려면 컴파일된 셰이더에 대한 포인터 가져오기를 참조하세요. 컴파일된 셰이더 코드에는 요소 배열에 대해 유효성을 검사하는 입력 서명 이 포함되어 있습니다. 설명을 참조하세요.

[in] BytecodeLength

형식: SIZE_T

컴파일된 셰이더의 크기입니다.

[out] ppInputLayout

형식: ID3D10InputLayout**

만든 입력 레이아웃 개체에 대한 포인터입니다( ID3D10InputLayout 인터페이스 참조). 다른 입력 매개 변수의 유효성을 검사하려면 이 포인터를 NULL 로 설정하고 메서드가 S_FALSE 반환되는지 확인합니다.

반환 값

형식: HRESULT

메서드가 성공하면 반환 코드가 S_OK. 오류 코드 실패 는 Direct3D 10 반환 코드를 참조하세요.

설명

입력 레이아웃 개체를 만든 후 그리기 API를 호출하기 전에 입력 어셈블러 단계에 바인딩되어야 합니다. 예제 코드는 Input-Assembler 스테이지(Direct3D 10)를 사용하여 시작 참조하세요.

셰이더 서명에서 입력 레이아웃 개체를 만들면 입력 레이아웃 개체를 동일한 입력 서명(의미 체계 포함)이 있는 다른 셰이더와 함께 다시 사용할 수 있습니다. 이렇게 하면 동일한 입력을 사용하는 많은 셰이더로 작업할 때 입력 레이아웃 개체 만들기가 간소화됩니다.

입력 레이아웃 선언의 데이터 형식이 셰이더 입력 서명의 데이터 형식과 일치하지 않는 경우 CreateInputLayout은 컴파일 중에 경고를 생성합니다. 경고는 레지스터에서 읽을 때 데이터가 재해석될 수 있다는 사실에 주의를 기울이기 위한 것입니다. 이 경고를 무시하거나(재해석이 의도적인 경우) 두 선언에서 데이터 형식이 일치하도록 하여 경고를 제거할 수 있습니다. 데이터 변환 규칙 개요는 데이터 형식 변환에 적용되는 규칙을 설명합니다.

Direct3D 9와 Direct3D 10의 차이점:

입력 레이아웃을 사용하여 셰이더 입력에 꼭짓점 데이터를 매핑하는 것은 성능을 향상시키는 Direct3D 10에서 작업을 수행하는 새로운 방법입니다.

Direct3D 10에서 꼭짓점 데이터는 입력 레이아웃 개체를 만들 때 셰이더 입력에 매핑되는 반면 Direct3D 9에서는 현재 바인딩된 꼭짓점 선언, 꼭짓점 버퍼 및 꼭짓점 셰이더를 기반으로 그리기 시간에 매핑이 수행되었습니다. 입력 레이아웃 개체를 만들 때 이 매핑을 수행하면 이 다시 매핑이 더 이상 필요하지 않으므로 그리기 시 드라이버에 대한 추가 연결 작업이 줄어들거나 제거됩니다.

요구 사항

   
대상 플랫폼 Windows
헤더 d3d10.h
라이브러리 D3D10.lib

추가 정보

ID3D10Device 인터페이스