IDirect3DSurface9::LockRect メソッド
IDirect3DSurface9::LockRect メソッド
サーフェイス上の矩形をロックする。
構文
HRESULT LockRect(
D3DLOCKED_RECT *pLockedRect,
const RECT *pRect,
DWORD Flags
);
パラメータ
- pLockedRect
[out] ロックされた領域を記述する D3DLOCKED_RECT 構造体へのポインタ。 - pRect
[in] ロックする矩形へのポインタ。RECT 構造体へのポインタで指定される。このパラメータに NULL を指定すると、サーフェイス全体を覆うようにダーティー領域が拡大する。 - Flags
[in] 実行するロックのタイプを記述する、0 個以上のロッキング フラグの組み合わせ。このメソッドでは、D3DLOCK の D3DLOCK_NOOVERWRITE 以外のフラグはすべて有効である。
戻り値
成功した場合は、D3D_OK を返す。
失敗した場合は、D3DERR_INVALIDCALL または D3DERR_WASSTILLDRAWING を返す。
注意
D3DLOCK_DONOTWAIT フラグが指定されていて、ドライバが直ちにサーフェイスをロックできない場合、IDirect3DSurface9::LockRect は D3DERR_WASSTILLDRAWING を返す。これによって、アプリケーションは、ドライバがサーフェイスのロックを待つ間の CPU サイクルを利用できる。
深度ステンシル サーフェイスのロック可能なフォーマットは、D3DFMT_D16_LOCKABLE だけである。「D3DFORMAT」を参照すること。
パフォーマンス上の理由から、ダーティー領域はテクスチャのレベル 0 についてのみ記録する。D3DLOCK_NO_DIRTY_UPDATE または D3DLOCK_READONLY を指定せずに IDirect3DSurface9::LockRect を呼び出すと、ダーティー領域が自動的に記録される。詳細については「IDirect3DDevice9::UpdateTexture」を参照すること。
マルチサンプル バック バッファはロックできない。
参照