Microsoft DirectX 8.0 (C++)

ID3DXBaseMesh::LockVertexBuffer

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

HRESULT LockVertexBuffer(
  DWORD Flags,
  BYTE** ppData
);

パラメータ

Flags
[in] 頂点バッファ メモリをどのようにロックするかを表す、1 つ以上のロッキング フラグの組み合わせ。
D3DLOCK_DISCARD
アプリケーションは、ロックされている領域内のすべての場所を、書き込み専用処理で上書きする。これにより、非ネイティブ フォーマットで格納されているリソースは圧縮解除ステップを省略できる。
D3DLOCK_NOOVERWRITE
フレームの開始以降、またはこのフラグを持たない最新のロック以降、描画呼び出しの中で参照される頂点のうち、ロック時に修正される頂点がないことを表す。頂点バッファへのデータの追加だけを行う場合は、このフラグにより処理を最適化できる。
D3DLOCK_NOSYSLOCK
ビデオ メモリ ロックのデフォルトの動作は、システム全体のクリティカル セクションを確保し、ロックの期間中はディスプレイ モードが変化しないことを保証するというものである。このフラグを指定すると、システム全体のクリティカル セクションはロックの間保持されない。

ロック処理は若干負荷が高くなるが、システムは、マウス カーソルの移動といったほかの動作を実行できる。このフラグは、それを行わないとシステムの応答に悪影響を及ぼすソフトウェア レンダリングに対するバック バッファのロックのような、長期間のロックに役立つ。

D3DLOCK_READONLY
アプリケーションはバッファに書き込まない。これにより、非ネイティブ フォーマットで格納されているリソースは、アンロック時に再圧縮ステップを省略できる。
ppData
[out, retval] BYTE 値の配列へのポインタのアドレス。戻り値の頂点データが入力される。

戻り値

成功した場合は、D3D_OK を返す。

失敗した場合は、D3DERR_INVALIDCALL を返す。

対象

このメソッドは、ID3DXBaseMesh を継承する次のインターフェイスに適用される。

注意

頂点バッファを操作するときは、複数のロック呼び出しを実行できる。ただし、ロック呼び出しの数とロック解除呼び出しの数を一致させる必要がある。現在設定されている頂点バッファでロック カウントが残っている場合、DrawPrimitive の呼び出しは失敗する。

動作環境

  ヘッダー : D3dx8mesh.h で宣言。
  インポート ライブラリ : D3dx8.lib を使用。

参照

ID3DXBaseMesh::UnlockVertexBuffer