D3DLOCK

実行するロックのタイプを記述する、0 個以上のロッキング オプションの組み合わせです。

#define 説明
D3DLOCK_DISCARD ロックされた領域内の全メモリーをアプリケーションが破棄します。頂点バッファーおよびインデックス バッファーの場合は、バッファー全体が破棄されます。このオプションは、動的使用法を指定してリソースが作成されている場合にのみ有効です (D3DUSAGE を参照)。
D3DLOCK_DONOTWAIT ドライバーがサーフェスを即座にロックできない場合、アプリケーションは CPU サイクルを取得し直すことができます。このフラグが設定されていて、ドライバーがサーフェスを即座にロックできない場合、ロックの呼び出しからは D3DERR_WASSTILLDRAWING が返されます。このフラグは、IDirect3DDevice9::CreateOffscreenPlainSurfaceIDirect3DDevice9::CreateRenderTarget、または IDirect3DDevice9::CreateDepthStencilSurface を使用して作成されたサーフェスをロックする場合にのみ使用できます。このフラグは、バック バッファーに対しても使用できます。
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, ID3DXBaseMesh::LockVertexBuffer, ID3DXMesh::LockAttributeBuffer, ID3DXPatchMesh::LockAttributeBuffer, ID3DXPatchMesh::LockIndexBuffer, ID3DXPatchMesh::LockVertexBuffer