共用方式為


IDirect3DVertexBuffer9::Lock 方法 (d3d9.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
如需旗標的描述,請參閱 D3DLOCK

傳回值

類型: HRESULT

如果方法成功,傳回值會D3D_OK。 如果方法失敗,則可以D3DERR_INVALIDCALL傳回值。

備註

一般規則是,不要在多個畫面格之間保留鎖定。 使用頂點緩衝區時,您可以進行多個鎖定呼叫;不過,您必須確定鎖定呼叫數目符合解除鎖定呼叫的數目。 DrawPrimitive 呼叫將不會成功,且任何目前設定的頂點緩衝區上有任何未完成的鎖定計數。

D3DLOCK_DISCARD和D3DLOCK_NOOVERWRITE旗標只有在使用 D3DUSAGE_DYNAMIC 建立的緩衝區上才有效。

如需搭配 IDirect3DVertexBuffer9::Lock 使用D3DLOCK_DISCARD或D3DLOCK_NOOVERWRITE的相關信息,請參閱 使用動態頂點和索引緩衝區

規格需求

需求
目標平台 Windows
標頭 d3d9.h (包含 D3D9.h)
程式庫 D3D9.lib

另請參閱

IDirect3DVertexBuffer9

IDirect3DVertexBuffer9::Unlock

(Direct3D 9) 頂點緩衝區