次の方法で共有


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」を参照すること。

マルチサンプル バック バッファはロックできない。

参照

IDirect3DSurface9::UnlockRect