IDirect3DTexture9::LockRect メソッド (d3d9helper.h)

テクスチャ リソースの四角形をロックします。

構文

HRESULT LockRect(
  [in]  UINT           Level,
  [out] D3DLOCKED_RECT *pLockedRect,
  [in]  const RECT     *pRect,
  [in]  DWORD          Flags
);

パラメーター

[in] Level

型: UINT

ロックするテクスチャ リソースのレベルを指定します。

[out] pLockedRect

種類: D3DLOCKED_RECT*

ロックされた領域を記述する 、D3DLOCKED_RECT 構造体へのポインター。

[in] pRect

型: const RECT*

ロックする四角形へのポインター。 RECT 構造体へのポインターによって指定されます。 このパラメーターに NULL を指定すると、テクスチャ全体をカバーするようにダーティ領域が展開されます。

[in] Flags

型: DWORD

実行するロックの種類を記述する 0 個以上のロック フラグの組み合わせ。 このメソッドの有効なフラグは次のとおりです。

  • D3DLOCK_DISCARD
  • D3DLOCK_NO_DIRTY_UPDATE
  • D3DLOCK_NOSYSLOCK
  • D3DLOCK_READONLY
D3DLOCK_DISCARDを使用する場合は、サブrect を指定することはできません。 フラグの説明については、「 D3DLOCK」を参照してください。

戻り値

型: HRESULT

メソッドが成功した場合、戻り値はD3D_OK。 メソッドが失敗した場合は、戻り値をD3DERR_INVALIDCALLできます。

注釈

D3DPOOL_DEFAULTで作成されたテクスチャはロックできません。 ビデオ メモリで作成されたテクスチャは、 USAGE_DYNAMICを使用して作成するとロックできます。

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

深度ステンシル テクスチャのロック可能な形式は 、D3DLOCK_D16_LOCKABLEのみです。

ビデオ メモリ テクスチャはロックできませんが、 IDirect3DDevice9::UpdateSurface または IDirect3DDevice9::UpdateTexture を呼び出して変更する必要があります。 Direct3D 9 で認識されない一部の独自のドライバー ピクセル形式には例外があります。 これらはロックできます。

このメソッドは、 D3DUSAGE_RENDERTARGET で作成されたテクスチャ リソースからデータを取得できません。そのため、このようなテクスチャはD3DPOOL_DEFAULTメモリに割り当てる必要があるため、ロックできません。 この場合は、代わりに IDirect3DDevice9::GetRenderTargetData を 使用して、デバイス メモリからシステム メモリにテクスチャ データをコピーします。

要件

要件
対象プラットフォーム Windows
ヘッダー d3d9helper.h (D3D9.h を含む)
Library D3D9.lib

こちらもご覧ください

IDirect3DDevice9::GetRenderTargetData

IDirect3DDevice9::UpdateTexture

IDirect3DTexture9

IDirect3DTexture9::UnlockRect