次の方法で共有


IDirect3DVertexBuffer9::Lock

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

HRESULT 
Lock(
  UINT OffsetToLock,
  UINT SizeToLock,
  VOID ** ppbData,
  DWORD Flags
);

パラメータ

  • OffsetToLock
    ロックする頂点データへのオフセット (バイト単位)。頂点バッファー全体をロックするには、SizeToLock と OffsetToLock の両方のパラメーターに 0 を設定します。
  • SizeToLock
    ロックする頂点データのサイズ (バイト単位)。頂点バッファー全体をロックするには、SizeToLock と OffsetToLock の両方のパラメーターに 0 を設定します。
  • ppbData
    取得する頂点データを含むメモリー バッファーへの VOID* ポインター
  • Flags
    実行するロックのタイプを指定する、0 個以上のロッキング フラグの組み合わせ。このメソッドに使用できるフラグを次に示します。
    • D3DLOCK_DISCARD
    • D3DLOCK_NO_DIRTY_UPDATE
    • D3DLOCK_NOSYSLOCK
    • D3DLOCK_READONLY
    • D3DLOCK_NOOVERWRITE フラグについては、「D3DLOCK」を参照してください。

戻り値

メソッドが成功した場合は、D3D_OK を返します。失敗した場合は、D3DERR_INVALIDCALL を返します。

解説 

一般的なルールとして、複数のフレームにわたってロックを保持しないようにします。頂点バッファーを操作する場合は、複数のロック呼び出しが行えますが、ロック呼び出しの数とロック解除呼び出しの数が一致している必要があります。現在設定されている頂点バッファー上にロック カウントが残っていた場合、DrawPrimitive の呼び出しは失敗します。

D3DLOCK_DISCARD フラグおよび D3DLOCK_NOOVERWRITE フラグは、D3DUSAGE_DYNAMIC を使用して作成されたバッファー上でのみ有効です。

IDirect3DVertexBuffer9::Lock での D3DLOCK_DISCARD または D3DLOCK_NOOVERWRITE の使用については、「動的な頂点バッファーおよびインデックス バッファーの使用」を参照してください。

要件

ヘッダー: D3D9.h 宣言

ライブラリ: D3D9.lib 内容

関連項目

IDirect3DVertexBuffer9::Unlock, 頂点バッファー (Direct3D 9)