次の方法で共有


IDirect3DTexture9::LockRect メソッド

IDirect3DTexture9::LockRect メソッド

テクスチャ リソース上の矩形をロックする。

構文

HRESULT LockRect(      
    UINT Level,
    D3DLOCKED_RECT *pLockedRect,
    CONST RECT *pRect,
    DWORD Flags
);

パラメータ

  • Level
    [in] ロックするテクスチャ リソースのレベルを指定する。

  • pLockedRect
    [out] ロック済みの領域を記述する D3DLOCKED_RECT 構造体へのポインタ。

  • pRect
    [in] ロックする矩形へのポインタ。RECT 構造体へのポインタで指定される。このパラメータに NULL を指定すると、テクスチャ全体を覆うようにダーティー領域が拡大する。

  • Flags
    [in] 実行するロックの種類を記述する、0 個以上のロッキング フラグの組み合わせ。このメソッドに使用できるフラグは次のとおり。

    • D3DLOCK_DISCARD
    • D3DLOCK_NO_DIRTY_UPDATE
    • D3DLOCK_NO_SYSLOCK
    • D3DLOCK_READONLY

    フラグについては、「D3DLOCK」を参照すること。

戻り値

成功した場合は、D3D_OK を返す。

失敗した場合は、D3DERR_INVALIDCALL を返す。

注意

D3DPOOL_DEFAULT で作成されたテクスチャはロックできない。ビデオ メモリで作成したテクスチャは、USAGE_DYNAMIC を指定して作成した場合はロックできる。使用方法の詳細については、「D3DUSAGE」を参照すること。

パフォーマンス上の理由から、ダーティー領域はテクスチャのレベル 0 についてのみ記録する。D3DLOCK_NO_DIRTY_UPDATE または D3DLOCK_READONLY を指定せずに IDirect3DTexture9::LockRect を呼び出すと、ダーティー領域が自動的に記録される。詳細については「IDirect3DDevice9::UpdateTexture」を参照すること。

深度ステンシル テクスチャのロック可能なフォーマットは、D3DFMT_D16_LOCKABLE だけである。

ビデオ メモリ テクスチャはロックできないが、IDirect3DDevice9::UpdateSurface または IDirect3DDevice9::UpdateTexture を呼び出して修正する必要がある。Microsoft® DirectX® 9.0 が認識しない、一部のドライバ独自のピクセル フォーマットは例外である。これらはロックできる。

参照

IDirect3DTexture9::UnlockRectIDirect3DDevice9::UpdateTexture