DirectX Graphics 레퍼런스 Direct3D C/C++ 레퍼런스 인터페이스 IDirect3DDevice9 CreateIndexBuffer   [목차열람] [주소복사] [슬롯비우기]
IDirect3DDevice9::CreateIndexBuffer 메서드
 
Microsoft DirectX 9.0

IDirect3DDevice9::CreateIndexBuffer 메서드


인덱스 버퍼를 생성 한다.

구문

HRESULT CreateIndexBuffer(      

    UINT Length,     DWORD Usage,     D3DFORMAT Format,     D3DPOOL Pool,     IDirect3DIndexBuffer9** ppIndexBuffer,     HANDLE* pHandle );

파라미터

Length
[in] 인덱스 버퍼의 사이즈 (바이트 단위).
Usage
[in] 사용법은 0 으로 할 수 있다. 이 경우 사용법의 값은 설정되지 않는다. 다만, 사용법이 필요한 경우는, 1 개 또는 복수의 D3DUSAGE 정수의 편성을 사용한다. CreateIndexBuffer 내의 사용 방법 파라미터와IDirect3D9::CreateDevice 의 동작 플래그를 합치시켜 사용하는 것을 추천한다. 상세 정보는 「주의」를 참조할것.
Format
[in] D3DFORMAT 열거형의 멤버. 인덱스 버퍼의 포맷을 기술한다. 유효한 설정은 다음과 같다. 「주의」를 참조할것.
D3DFMT_INDEX16
인덱스는 각각 16 비트이다.
D3DFMT_INDEX32
인덱스는 각각 32 비트이다.
Pool
[in] D3DPOOL 열거형의 멤버. 리소스가 배치되는 유효한 메모리 클래스를 기술한다.
ppIndexBuffer
[out, retval] 생성 된 인덱스 버퍼 리소스를 나타내는 IDirect3DIndexBuffer9 인터페이스의 포인터 주소.
pHandle
[in] 예약이 끝난 상태. 이 파라미터는 NULL 로 설정한다.

반환값

성공했을 경우는,D3D_OK 를 돌려준다.

실패했을 경우는, 다음의 몇개의 값을 돌려준다.

D3DERR_INVALIDCALL메서드의 호출이 무효이다. 예를 들어, 메서드의 파라미터에 무효인 값이 설정되어 있는 경우 등이다.
D3DERR_OUTOFVIDEOMEMORYMicrosoft® Direct3D® 가 처리를 실시하는데 충분한 디스플레이 메모리가 없다.
D3DXERR_INVALIDDATA데이터가 무효이다.
E_OUTOFMEMORYDirect3D 가 호출을 완료하기 위한 충분한 메모리를 할당할 수가 없었다.


주의

인덱스 버퍼는, 인덱스를 보관 유지하기 위해서 사용되는 메모리 리소스이며, 표면 버퍼 및 정점 버퍼와 유사하다. 인덱스 버퍼를 사용하는 것으로, Direct3D 에서는, 데이터의 불필요한 복사 처리를 피할 수가 있어 의도되고 있는 사용 방법의 최적인 메모리 타입에 버퍼를 저장 할 수 있다.

인덱스 버퍼를 사용하려면 , 인덱스 버퍼를 생성 해, 그것을 잠그어, 인덱스를 저장 한다. 다음에, 그 인덱스 버퍼를 언락 해,IDirect3DDevice9::SetIndices 에 건네주어, 정점와 정점 셰이더를 설정해,IDirect3DDevice9::DrawIndexedPrimitive 를 호출해 렌더링을 실시한다.

D3DCAPS9 구조체의 MaxVertexIndex 멤버는, 렌더링으로 유효한 인덱스 버퍼의 타입을 나타낸다.

참조

IDirect3DIndexBuffer9::GetDesc


© 2002 Microsoft Corporation. All rights reserved.
↑TOP