Microsoft DirectX 8.0 (C++) |
テクスチャ リソース上の矩形をロックする。
HRESULT LockRect( UINT Level, D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags );
ロック処理は若干負荷が高くなるが、マウス カーソルの移動など、システムでほかの処理を実行することが可能になる。このフラグは、ソフトウェア レンダリングのバックバッファのロックのように、ロックが長時間に及び、システムの応答性に悪影響を与えてしまうようなロックに対して有効である。
成功した場合は、D3D_OK を返す。
失敗した場合は、D3DERR_INVALIDCALL を返す。
D3DPOOL_DEFAULT で作成されたテクスチャはロックできない。
深度ステンシル サーフェスのロック可能なフォーマットは、D3DFMT_D16_LOCKABLE だけである。
マルチサンプル バック バッファはロックできない。ビデオ メモリ テクスチャはロックできないが、IDirect3Ddevice8::CopyRects または IDirect3Ddevice8::UpdateTexture を呼び出して修正する必要がある。Microsoft® DirectX® 8.0 が認識しない、一部のメーカーのドライバのピクセル フォーマットは例外である。これらはロックできる。
パフォーマンスの理由によって、ダーティーな範囲はテクスチャのレベルゼロに対して記録されるのみである。D3DLOCK_NO_DIRTY_UPDATE または D3DLOCK_READONLY なしで LockRect か LockBox が呼び出されたとき、ダーティーな範囲は自動的に記録される。詳細については、「IDirect3DDevice8::UpdateTexture」を参照すること。
ヘッダー : d3d8.h で宣言。
インポート ライブラリ : D3d8.lib を使用。