Microsoft DirectX 8.0 (C++)

ID3DXBaseMesh::LockIndexBuffer

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

HRESULT LockIndexBuffer(
  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::UnlockIndexBuffer