DirectX Graphics 레퍼런스 Direct3D C/C++ 레퍼런스 인터페이스 IDirect3DVertexBuffer9 Lock [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
정점 데이터의 범위를 잠그어, 정점 버퍼 메모리의 포인터를 얻어온다.
구문
HRESULT Lock(
UINT OffsetToLock, UINT SizeToLock, VOID **ppbData, DWORD Flags );
파라미터
- OffsetToLock
- [in] 잠그는 정점 데이터에의 오프셋(offset) (바이트 단위). 정점 버퍼 전체를 잠그려면 ,SizeToLock 와 OffsetToLock 의 양쪽 모두의 파라미터에 0 을 지정한다.
- SizeToLock
- [in] 잠그는 정점 데이터의 사이즈 (바이트 단위). 정점 버퍼 전체를 잠그려면 ,SizeToLock 와 OffsetToLock 의 양쪽 모두의 파라미터에 0 을 지정한다.
- ppbData
- [out] 돌려주어진 정점 데이터를 포함한 메모리 버퍼에의 VOID* 포인터.
- Flags
- [in] 실행하는 잠금의 종류를 기술하는, 0 개 이상의 잠금 플래그의 편성. 이 메서드에 사용할 수 있는 플래그는 다음대로.
- D3DLOCK_DISCARD
- D3DLOCK_NO_DIRTY_UPDATE
- D3DLOCK_NO_SYSLOCK
- D3DLOCK_READONLY
- D3DLOCK_NOOVERWRITE
플래그에 대해서는, 「D3DLock 」를 참조할것.
반환값
성공했을 경우는,D3D_OK 를 돌려준다.
실패했을 경우는,D3DERR_INVALIDCALL 를 돌려준다.
주의
정점 버퍼를 조작 할 때는, 복수의 잠금 호출을 실행할 수 있다. 다만, 잠금 호출의 수와 언락 호출의 수를 일치시킬 필요가 있다. 현재 설정해 있는 정점 버퍼로 잠금 카운트가 남아 있는 경우, DrawPrimitive 의 호출은 실패한다.
D3DLOCK_DISCARD 및 D3DLOCK_NOOVERWRITE 플래그는, D3DUSAGE_DYNAMIC 로 생성 된 버퍼 에 대해서만 유효하다.
IDirect3DVertexBuffer9::Lock 에서의 D3DLOCK_DISCARD 또는 D3DLOCK_NOOVERWRITE 의 사용법의 자세한 것은, 「동적인 정점 버퍼와 인덱스 버퍼의 사용법」을 참조할것
참조
IDirect3DVertexBuffer9::Unlock