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 |