IDirect3DIndexBuffer9::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できます。

解説

一般的なルールとして、複数のフレームにわたってロックを保持しないでください。 インデックス バッファーを使用する場合は、複数のロック呼び出しを行うことができます。 ただし、ロック呼び出しの数がロック解除呼び出しの数と一致していることを確認する必要があります。 IDirect3DDevice9::D rawIndexedPrimitive 呼び出しは、現在設定されているインデックス バッファーの未処理のロック カウントでは成功しません。

D3DLOCK_DISCARDフラグとD3DLOCK_NOOVERWRITE フラグは、D3DUSAGE_DYNAMICで作成されたバッファーでのみ有効です。

D3DLOCK_DISCARDまたはD3DLOCK_NOOVERWRITEの使用については、「 プログラミングのヒント (Direct3D 9)」 を参照してください。

要件

   
対象プラットフォーム Windows
ヘッダー d3d9helper.h (D3D9.h を含む)
Library D3D9.lib

関連項目

IDirect3DIndexBuffer9

IDirect3DIndexBuffer9::Unlock

インデックス バッファー (Direct3D 9)