D3DLOCK
D3DLOCK
実行するロックの種類を記述する、0 あるいは複数のロッキング オプションの組み合わせ。
#define | 説明 |
---|---|
D3DLOCK_DISCARD | アプリケーションは、ロックされている領域内のすべての場所を、書き込み専用処理で上書きする。これは動的テクスチャ、動的な頂点バッファ、および動的なインデックス バッファを使うときに有効なオプションである。
頂点バッファおよびインデックス バッファの場合、アプリケーションはバッファ全体を破棄する。新しいメモリ領域へのポインタが返されるので、ダイナミック メモリ アクセス (DMA) と古い領域からのレンダリングが機能停止することはない。 テクスチャに対しては、アプリケーションはロックされている領域内のすべての場所を書き込み専用処理で上書きする。 |
D3DLOCK_DONOTWAIT | ドライバが直ちにサーフェイスをロックできない場合に、アプリケーションが CPU サイクルを取得し直すことができる。このフラグが設定されている場合、ドライバが直ちにサーフェイスをロックできないときは、ロック呼び出しは D3DERRR_WASSTILLDRAWING を返す。このフラグは、IDirect3DDevice9::CreateOffscreenPlainSurface、IDirect3DDevice9::CreateRenderTarget、または IDirect3DDevice9::CreateDepthStencilSurface を使って作成したサーフェイスの LockRect を呼び出す場合にのみ使うことができる。このフラグはバック バッファと共に使うこともできる。 |
D3DLOCK_NO_DIRTY_UPDATE | デフォルトでは、リソースのロックはダーティー領域をそのリソースに追加する。このオプションを指定すると、リソースのダーティー状態が変更されなくなる。アプリケーションでは、ロック処理の間に変更されるの領域セットについての追加情報を持っているときは、このオプションを使う必要がある。 |
D3DLOCK_NOOVERWRITE | アプリケーションが頂点バッファおよびインデックス バッファ内のデータを上書きしないことを保証する。このフラグを指定すると、ドライバが即座に終了し、このバッファを使ってレンダリングを続行できる。このフラグを使わない場合、ドライバはロックから戻る前にレンダリングを終了する必要がある。 |
D3DLOCK_NOSYSLOCK | ビデオ メモリ ロックのデフォルトの動作は、システムのクリティカル セクションを確保することで、ロック中にディスプレイ モードの変更が行われないことを保証する。このオプションは、システムワイドなクリティカル セクションがロックの間保持されないようにする。 ロック処理は時間がかかるが、マウス カーソルの移動など、システムで他の処理を実行することが可能になる。このオプションは、ソフトウェア レンダリングのバック バッファのロックのように、ロックが長時間に及び、システムの応答性に悪影響を与えてしまうようなロックに対して有効である。 |
D3DLOCK_READONLY | アプリケーションはバッファに書き込まない。これにより、非ネイティブ フォーマットで格納されているリソースは、アンロック時に再圧縮ステップを省略できる。 |
定数情報
ヘッダー | d3d9types.h |
最低限のオペレーティング システム | Windows 98 |
関連項目
- IDirect3DCubeTexture9::LockRect
- IDirect3DIndexBuffer9::Lock
- IDirect3DSurface9::LockRect
- IDirect3DTexture9::LockRect
- IDirect3DVertexBuffer9::Lock
- IDirect3DVolume9::LockBox
- IDirect3DVolumeTexture9::LockBox
- ID3DXBaseMesh::LockIndexBuffer
- ID3DXBaseMesh::LockVertexBuffer
- ID3DXMesh::LockAttributeBuffer
- ID3DXPatchMesh::LockAttributeBuffer
- ID3DXPatchMesh::LockIndexBuffer
- ID3DXPatchMesh::LockVertexBuffer