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
戻り値
型: 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 |