IDirect3DVertexBuffer9::Lock 方法 (d3d9helper.h)
鎖定頂點資料的範圍,並取得頂點緩衝區記憶體的指標。
語法
HRESULT Lock(
[in] UINT OffsetToLock,
[in] UINT SizeToLock,
[out] void **ppbData,
[in] DWORD Flags
);
參數
[in] OffsetToLock
類型: UINT
位移至頂點資料,以位元組為單位鎖定。 若要鎖定整個頂點緩衝區,請針對兩個參數指定 0:SizeToLock 和 OffsetToLock。
[in] SizeToLock
類型: UINT
要鎖定的頂點資料大小,以位元組為單位。 若要鎖定整個頂點緩衝區,請針對兩個參數指定 0:SizeToLock 和 OffsetToLock。
[out] ppbData
類型: VOID**
VOID* 記憶體緩衝區的指標,其中包含傳回的頂點資料。
[in] Flags
類型: DWORD
零個或多個鎖定旗標的組合,描述要執行的鎖定類型。 針對這個方法,有效的旗標為:
- D3DLOCK_DISCARD
- D3DLOCK_NO_DIRTY_UPDATE
- D3DLOCK_NOSYSLOCK
- D3DLOCK_READONLY
- D3DLOCK_NOOVERWRITE
傳回值
類型: HRESULT
如果方法成功,傳回值會D3D_OK。 如果方法失敗,則傳回值可以D3DERR_INVALIDCALL。
備註
一般規則是,不要在多個畫面上保留鎖定。 使用頂點緩衝區時,您可以進行多個鎖定呼叫;不過,您必須確定鎖定呼叫數目符合解除鎖定呼叫的數目。 DrawPrimitive 呼叫將不會成功,且任何目前設定頂點緩衝區上任何未完成的鎖定計數。
D3DLOCK_DISCARD和D3DLOCK_NOOVERWRITE旗標只有在以 D3DUSAGE_DYNAMIC 建立的緩衝區上才有效。
如需搭配 IDirect3DVertexBuffer9::Lock使用D3DLOCK_DISCARD或D3DLOCK_NOOVERWRITE的相關資訊,請參閱 使用動態頂點和索引緩衝區。
需求
目標平台 | Windows |
標頭 | d3d9helper.h (包含 D3D9.h) |
程式庫 | D3D9.lib |