IDirect3DDevice9::CreateVertexBuffer 메서드(d3d9helper.h)
꼭짓점 버퍼를 만듭니다.
구문
HRESULT CreateVertexBuffer(
[in] UINT Length,
[in] DWORD Usage,
[in] DWORD FVF,
[in] D3DPOOL Pool,
[out, retval] IDirect3DVertexBuffer9 **ppVertexBuffer,
[in] HANDLE *pSharedHandle
);
매개 변수
[in] Length
형식: UINT
꼭짓점 버퍼의 크기(바이트)입니다. FVF 꼭짓점 버퍼의 경우 길이는 하나 이상의 꼭짓점을 포함할 만큼 충분히 커야 하지만 꼭짓점 크기의 배수일 필요는 없습니다. FVF가 아닌 버퍼의 길이는 유효성이 검사되지 않습니다. 설명 부분을 참조하세요.
[in] Usage
형식: DWORD
사용량은 0일 수 있으며 이는 사용량 값을 나타내지 않습니다. 그러나 사용이 필요한 경우 하나 이상의 D3DUSAGE 상수 조합을 사용합니다. CreateVertexBuffer의 사용 매개 변수를 IDirect3D9::CreateDevice의 동작 플래그와 일치시키는 것이 좋습니다. 자세한 내용은 설명 부분을 참조하세요.
[in] FVF
형식: DWORD
이 버퍼의 꼭짓점 형식을 설명하는 사용 지정자인 D3DFVF의 조합입니다. 이 매개 변수가 유효한 FVF 코드로 설정된 경우 생성된 꼭짓점 버퍼는 FVF 꼭짓점 버퍼입니다(설명 참조). 그렇지 않으면 이 매개 변수가 0으로 설정된 경우 꼭짓점 버퍼는 FVF가 아닌 꼭짓점 버퍼입니다.
[in] Pool
형식: D3DPOOL
리소스를 배치할 유효한 메모리 클래스를 설명하는 D3DPOOL 열거형 형식의 멤버입니다. D3DPOOL_SCRATCH 설정하지 마세요.
[out, retval] ppVertexBuffer
형식: IDirect3DVertexBuffer9**
만든 꼭짓점 버퍼 리소스를 나타내는 IDirect3DVertexBuffer9 인터페이스에 대한 포인터의 주소입니다.
[in] pSharedHandle
형식: HANDLE*
예약되어 있습니다. 이 매개 변수를 NULL로 설정합니다. 이 매개 변수는 Windows Vista용 Direct3D 9에서 리소스를 공유하는 데 사용할 수 있습니다.
반환 값
형식: HRESULT
메서드가 성공하면 반환 값이 D3D_OK. 메서드가 실패하면 반환 값은 D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY, E_OUTOFMEMORY 중 하나일 수 있습니다.
설명
꼭짓점 버퍼는 하드웨어 또는 소프트웨어 꼭짓점 처리와 함께 사용할 수 있습니다. 이는 디바이스 및 꼭짓점 버퍼를 만드는 방법에 따라 결정됩니다.
디바이스를 만들 때 CreateDevice는 동작 플래그를 사용하여 하드웨어 또는 소프트웨어에서 꼭짓점을 처리할지 여부를 결정합니다. 다음과 같은 세 가지 가능성이 있습니다.
- D3DCREATE_HARDWARE_VERTEXPROCESSING 설정하여 하드웨어에서 꼭짓점을 처리합니다.
- D3DCREATE_SOFTWARE_VERTEXPROCESSING 설정하여 소프트웨어에서 꼭짓점을 처리합니다.
- D3DCREATE_MIXED_VERTEXPROCESSING 설정하여 하드웨어 또는 소프트웨어에서 꼭짓점을 처리합니다.
꼭짓점 버퍼를 만들 때 CreateVertexBuffer는 사용 매개 변수를 사용하여 하드웨어 또는 소프트웨어에서 꼭짓점을 처리할지 여부를 결정합니다.
- CreateDevice에서 D3DCREATE_HARDWARE_VERTEXPROCESSING 사용하는 경우 CreateVertexBuffer는 0을 사용해야 합니다.
- CreateDevice에서 D3DCREATE_SOFTWARE_VERTEXPROCESSING 사용하는 경우 CreateVertexBuffer는 0 또는 D3DUSAGE_SOFTWAREPROCESSING 사용해야 합니다. 두 값의 경우 꼭짓점은 소프트웨어에서 처리됩니다.
- CreateDevice에서 D3DCREATE_MIXED_VERTEXPROCESSING 사용하는 경우 CreateVertexBuffer는 0 또는 D3DUSAGE_SOFTWAREPROCESSING 사용할 수 있습니다.
IDirect3DDevice9 인터페이스는 꼭짓점 버퍼 개체에 저장된 꼭짓점 데이터를 사용하여 기본 형식의 렌더링을 지원합니다. 꼭짓점 버퍼는 IDirect3DDevice9에서 생성되며 만들어지는 IDirect3DDevice9 개체에서만 사용할 수 있습니다.
유효한 FVF 코드여야 하는 0이 아닌 값으로 설정하면 FVF 매개 변수는 버퍼 콘텐츠가 FVF 코드로 특징지어지도록 나타냅니다. FVF 코드를 사용하여 만든 꼭짓점 버퍼를 FVF 꼭짓점 버퍼라고 합니다. 자세한 내용은 FVF 꼭짓점 버퍼(Direct3D 9)를 참조하세요.
비 FVF 버퍼를 사용하여 다중 패스 렌더링 또는 다중 텍스트 렌더링 중에 데이터를 단일 패스로 인터리빙할 수 있습니다. 이를 위해 한 버퍼에는 기하 도형 데이터가 포함되고 다른 버퍼에는 렌더링할 각 텍스처에 대한 텍스처 좌표가 포함됩니다. 렌더링할 때 기하 도형 데이터를 포함하는 버퍼는 텍스처 좌표를 포함하는 각 버퍼와 인터리브됩니다. FVF 버퍼를 대신 사용한 경우 각 버퍼는 렌더링된 각 텍스처와 관련된 텍스처 좌표 데이터 외에도 동일한 기하 도형 데이터를 포함해야 합니다. 이렇게 하면 사용된 전략에 따라 속도 또는 메모리 페널티가 발생합니다. 텍스처 좌표에 대한 자세한 내용은 텍스처 좌표(Direct3D 9)를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | d3d9helper.h(D3D9.h 포함) |
라이브러리 | D3D9.lib |
추가 정보
IDirect3DDevice9::P rocessVertices