Microsoft DirectX 8.0 (C++)

IDirect3DVolume8::LockBox

ボリューム リソース上のボックスをロックする。

HRESULT LockBox(
  D3DLOCKED_BOX* pLockedVolume,
  CONST D3DBOX* pBox,
  DWORD Flags
);

パラメータ

pLockedVolume
[out] ロックされた領域を記述する D3DLOCKED_BOX 構造体へのポインタ。
pBox
[in] ロックするボックスへのポインタ。D3DBOX 構造体へのポインタで指定される。このパラメータに NULL を指定すると、ボリューム全体がロックされる。
Flags
[in] 実行するロックのタイプを記述する、0 個以上のロッキング フラグの組み合わせ。
D3DLOCK_NO_DIRTY_UPDATE
デフォルトでは、リソースのロックはダーティー領域をそのリソースに追加する。このフラグは、リソースのダーティー状態への変更を防ぐ。アプリケーションでは、ロック処理中に変更される実際のボリューム セットについての追加情報を持っている場合は、このフラグを使用しなければならない。
D3DLOCK_NOSYSLOCK
ビデオ メモリ ロックのデフォルトの動作は、システムのクリティカル セクションを確保することで、ロック中にディスプレイ モードの変更が行われないことを保証する。このフラグは、システムワイドなクリティカル セクションがロックの間保持されないようにする。

ロック処理は若干負荷が高くなるが、マウス カーソルの移動など、システムでほかの処理を実行することが可能になる。このフラグは、ソフトウェア レンダリングのバックバッファのロックのように、ロックが長時間に及び、システムの応答性に悪影響を与えてしまうようなロックに対して有効である。

D3DLOCK_READONLY
アプリケーションはバッファに書き込みを行わない。これによって、ネイティブでないフォーマットで格納されたリソースが、アンロック時に再圧縮手順を保存できる。

戻り値

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

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

注意

パフォーマンスの理由によって、ダーティーな範囲はテクスチャのレベルゼロに対して記録されるのみである。D3DLOCK_NO_DIRTY_UPDATE または D3DLOCK_READONLY なしで LockRectLockBox が呼び出されたとき、ダーティーな範囲は自動的に記録される。詳細については、「IDirect3DDevice8::UpdateTexture」を参照すること。

動作環境

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

参照

IDirect3DVolume8::UnlockBox