D3DLOCK

D3DLOCK

実行するロックの種類を記述する、0 あるいは複数のロッキング オプションの組み合わせ。

#define 説明
D3DLOCK_DISCARD アプリケーションは、ロックされている領域内のすべての場所を、書き込み専用処理で上書きする。これは動的テクスチャ、動的な頂点バッファ、および動的なインデックス バッファを使うときに有効なオプションである。

頂点バッファおよびインデックス バッファの場合、アプリケーションはバッファ全体を破棄する。新しいメモリ領域へのポインタが返されるので、ダイナミック メモリ アクセス (DMA) と古い領域からのレンダリングが機能停止することはない。

テクスチャに対しては、アプリケーションはロックされている領域内のすべての場所を書き込み専用処理で上書きする。

D3DLOCK_DONOTWAIT ドライバが直ちにサーフェイスをロックできない場合に、アプリケーションが CPU サイクルを取得し直すことができる。このフラグが設定されている場合、ドライバが直ちにサーフェイスをロックできないときは、ロック呼び出しは D3DERRR_WASSTILLDRAWING を返す。このフラグは、IDirect3DDevice9::CreateOffscreenPlainSurfaceIDirect3DDevice9::CreateRenderTarget、または IDirect3DDevice9::CreateDepthStencilSurface を使って作成したサーフェイスの LockRect を呼び出す場合にのみ使うことができる。このフラグはバック バッファと共に使うこともできる。
D3DLOCK_NO_DIRTY_UPDATE デフォルトでは、リソースのロックはダーティー領域をそのリソースに追加する。このオプションを指定すると、リソースのダーティー状態が変更されなくなる。アプリケーションでは、ロック処理の間に変更されるの領域セットについての追加情報を持っているときは、このオプションを使う必要がある。
D3DLOCK_NOOVERWRITE アプリケーションが頂点バッファおよびインデックス バッファ内のデータを上書きしないことを保証する。このフラグを指定すると、ドライバが即座に終了し、このバッファを使ってレンダリングを続行できる。このフラグを使わない場合、ドライバはロックから戻る前にレンダリングを終了する必要がある。
D3DLOCK_NOSYSLOCK

ビデオ メモリ ロックのデフォルトの動作は、システムのクリティカル セクションを確保することで、ロック中にディスプレイ モードの変更が行われないことを保証する。このオプションは、システムワイドなクリティカル セクションがロックの間保持されないようにする。

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

D3DLOCK_READONLY アプリケーションはバッファに書き込まない。これにより、非ネイティブ フォーマットで格納されているリソースは、アンロック時に再圧縮ステップを省略できる。

定数情報

ヘッダー d3d9types.h
最低限のオペレーティング システム Windows 98

関連項目