CONST_D3DLOCKFLAGS
ロッキング フラグを定義する。
Enum CONST_D3DLOCKFLAGS
D3DLOCK_READONLY = 16 (&H10)
D3DLOCK_NOSYSLOCK = 2048 (&H800)
D3DLOCK_NOOVERWRITE = 4096 (&H1000)
D3DLOCK_DISCARD = 8192 (&H2000)
D3DLOCK_NO_DIRTY_UPDATE = 32768 (&H8000)
End Enum
定数
- D3DLOCK_READONLY
- アプリケーションはバッファに書き込まない。いくつかの最適化が有効になる。D3DLOCK_READONLY は D3DLOCK_DISCARD と共に指定することはできない。また、D3DUSAGE_WRITEONLY で作成された入力または頂点バッファで指定することもできない。
- D3DLOCK_NOSYSLOCK
- ビデオ メモリ ロックのデフォルトの動作は、システム全体のクリティカル セクションを確保し、ロックの期間中はディスプレイ モードが変化しないことを保証するというものである。このフラグを指定すると、システム全体のクリティカル セクションはロックの間保持されない。
ロック処理は若干負荷が高くなるが、システムは、マウス カーソルの移動といった他の動作を実行できる。このフラグは、それを行わないとシステムに悪影響を及ぼすソフトウェア レンダリングに対するバック バッファのロックのような、長期間のロックに役立つ。
- D3DLOCK_NOOVERWRITE
- フレームの開始以降、またはこのフラグが指定されていない最後のロック以降に描画処理の呼び出しの中で参照されたインデックスまたは頂点は、ロック中に変更されないことを示す。インデックス バッファまたは頂点バッファへのデータの追加を行う場合のみ、このフラグにより処理を最適化できる。このフラグは、D3DUSAGE_DYNAMIC で作成されたバッファでのみ有効である。
- D3DLOCK_DISCARD
- 書き込み専用で、アプリケーションはバッファ全体を上書きする。これにより、Direct3D は新しいメモリ領域へのポインタを返すことができ、ダイナミック メモリ アクセス (DMA) および古い領域からのレンダリングが機能停止しなくなる。このフラグは、インデックスおよび頂点バッファに対してのみ有効である。このフラグは、D3DUSAGE_DYNAMIC で作成されたバッファでのみ有効である。
- D3DLOCK_NO_DIRTY_UPDATE
- デフォルトでは、リソースをロックすると、そのリソースにダーティー領域が追加される。このフラグを指定すると、リソースのダーティー状態が変更されなくなる。アプリケーションでは、ロック処理の間に変更される実際の領域セットについての追加情報を持っているときは、このフラグを使用する必要がある。このフラグは、頂点バッファおよびインデックス バッファについては有効ではないことに注意すること。