次の方法で共有


IDirect3DVertexBuffer9::Lock メソッド (d3d9helper.h)

頂点データの範囲をロックし、頂点バッファー メモリへのポインターを取得します。

構文

HRESULT Lock(
  [in]  UINT  OffsetToLock,
  [in]  UINT  SizeToLock,
  [out] void  **ppbData,
  [in]  DWORD Flags
);

パラメーター

[in] OffsetToLock

型: UINT

ロックする頂点データへのオフセット (バイト単位)。 頂点バッファー全体をロックするには、SizeToLock と OffsetToLock の両方のパラメーターに 0 を指定します。

[in] SizeToLock

型: UINT

ロックする頂点データのサイズ (バイト単位)。 頂点バッファー全体をロックするには、SizeToLock と OffsetToLock の両方のパラメーターに 0 を指定します。

[out] ppbData

型: VOID**

VOID* 返された頂点データを含むメモリ バッファーへのポインター。

[in] Flags

型: DWORD

実行するロックの種類を記述する 0 個以上のロック フラグの組み合わせ。 このメソッドの有効なフラグは次のとおりです。

  • 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
ヘッダー d3d9helper.h (D3D9.h を含む)
Library D3D9.lib

関連項目

IDirect3DVertexBuffer9

IDirect3DVertexBuffer9::Unlock

頂点バッファー (Direct3D 9)