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

サーフェス上の四角形をロックします。

構文

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

パラメーター

[out] pLockedRect

種類: D3DLOCKED_RECT*

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

[in] pRect

型: const RECT*

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

[in] Flags

種類: DWORD

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

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

戻り値

種類: HRESULT

メソッドが成功した場合、戻り値はD3D_OK。

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

注釈

D3DLOCK_DONOTWAIT フラグが指定されていて、ドライバーがサーフェスをすぐにロックできない場合、IDirect3DSurface9::LockRect はD3DERR_WASSTILLDRAWINGを返し、ドライバーがサーフェスをロックするのを待機している間にアプリケーションが CPU サイクルを使用できるようにします。

深度ステンシル サーフェスのロック可能な形式は、D3DFMT_D16_LOCKABLEのみです。 「D3DFORMAT」を参照してください。

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

マルチサンプル バック バッファーはロックできません。

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

要件

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

こちらもご覧ください

IDirect3DSurface9

IDirect3DSurface9::UnlockRect