IDirect3DDevice9::CreateIndexBuffer 메서드(d3d9helper.h)

인덱스 버퍼를 만듭니다.

구문

HRESULT CreateIndexBuffer(
  [in]          UINT                  Length,
  [in]          DWORD                 Usage,
  [in]          D3DFORMAT             Format,
  [in]          D3DPOOL               Pool,
  [out, retval] IDirect3DIndexBuffer9 **ppIndexBuffer,
  [in]          HANDLE                *pSharedHandle
);

매개 변수

[in] Length

형식: UINT

인덱스 버퍼의 크기(바이트)입니다.

[in] Usage

형식: DWORD

사용량은 0일 수 있으며 이는 사용량 값을 나타내지 않습니다. 그러나 사용이 필요한 경우 하나 이상의 D3DUSAGE 상수 조합을 사용합니다. CreateIndexBuffer의 사용 매개 변수를 IDirect3D9::CreateDevice의 동작 플래그와 일치시킬 수 있습니다. 자세한 내용은 설명 부분을 참조하세요.

[in] Format

형식: D3DFORMAT

인덱스 버퍼의 형식을 설명하는 D3DFORMAT 열거형 형식의 멤버입니다. 자세한 내용은 설명 부분을 참조하세요. 유효한 설정은 다음과 같습니다.

항목 Description
D3DFMT_INDEX16 인덱스는 각각 16비트입니다.
D3DFMT_INDEX32 인덱스는 각각 32비트입니다.

[in] Pool

형식: D3DPOOL

리소스를 배치할 유효한 메모리 클래스를 설명하는 D3DPOOL 열거형 형식의 멤버입니다.

[out, retval] ppIndexBuffer

형식: IDirect3DIndexBuffer9**

생성된 인덱스 버퍼 리소스를 나타내는 IDirect3DIndexBuffer9 인터페이스에 대한 포인터의 주소입니다.

[in] pSharedHandle

형식: HANDLE*

이 매개 변수는 Windows Vista용 Direct3D 9에서 리소스를 공유하는 데 사용할 수 있습니다. 리소스를 공유하지 않도록 NULL 로 설정합니다. 이 매개 변수는 Windows Vista 이전 운영 체제의 경우 Direct3D 9에서 사용되지 않습니다. NULL로 설정합니다.

반환 값

형식: HRESULT

메서드가 성공하면 반환 값이 D3D_OK. 메서드가 실패하면 반환 값은 D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY, D3DXERR_INVALIDDATA, E_OUTOFMEMORY 중 하나일 수 있습니다.

설명

인덱스 버퍼는 인덱스를 보유하는 데 사용되는 메모리 리소스이며, 표면 및 꼭짓점 버퍼와 비슷합니다. 인덱스 버퍼를 사용하면 Direct3D가 불필요한 데이터 복사를 방지하고 버퍼를 예상 사용량에 대한 최적의 메모리 형식에 배치할 수 있습니다.

인덱스 버퍼를 사용하려면 인덱스 버퍼를 만들고, 잠그고, 인덱스로 채우고, 잠금을 해제하고, IDirect3DDevice9::SetIndices에 전달하고, 꼭짓점을 설정하고, 꼭짓점 셰이더를 설정하고, 렌더링을 위해 IDirect3DDevice9::D rawIndexedPrimitive 를 호출합니다.

D3DCAPS9 구조체의 MaxVertexIndex 멤버는 렌더링에 유효한 인덱스 버퍼 유형을 나타냅니다.

요구 사항

   
대상 플랫폼 Windows
헤더 d3d9helper.h(D3D9.h 포함)
라이브러리 D3D9.lib

추가 정보

IDirect3DDevice9

IDirect3DIndexBuffer9::GetDesc

인덱스 버퍼(Direct3D 9)