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
戻り値
種類: HRESULT
メソッドが成功した場合、戻り値はD3D_OK。
メソッドが失敗した場合、戻り値はD3DERR_INVALIDCALLまたはD3DERR_WASSTILLDRAWINGできます。
注釈
D3DLOCK_DONOTWAIT フラグが指定されていて、ドライバーがサーフェスをすぐにロックできない場合、IDirect3DSurface9::LockRect はD3DERR_WASSTILLDRAWINGを返し、ドライバーがサーフェスをロックするのを待機している間にアプリケーションが CPU サイクルを使用できるようにします。
深度ステンシル サーフェスのロック可能な形式は、D3DFMT_D16_LOCKABLEのみです。 「D3DFORMAT」を参照してください。
パフォーマンス上の理由から、ダーティ領域はテクスチャのレベル 0 にのみ記録されます。 ダーティ領域は、 IDirect3DSurface9::LockRect が D3DLOCK_NO_DIRTY_UPDATEまたはD3DLOCK_READONLY なしで呼び出されると自動的に記録されます。 詳細については、「 IDirect3DDevice9::UpdateTexture 」を参照してください。
マルチサンプル バック バッファーはロックできません。
このメソッドは、 D3DUSAGE_RENDERTARGET を使用して作成されたテクスチャ リソースに含まれるサーフェスからデータを取得できません。そのため、このようなテクスチャはD3DPOOL_DEFAULTメモリに割り当てる必要があるため、ロックできません。 この場合は、代わりに IDirect3DDevice9::GetRenderTargetData を使用して、デバイス メモリからシステム メモリにテクスチャ データをコピーします。
要件
対象プラットフォーム | Windows |
ヘッダー | d3d9helper.h (D3D9.h を含む) |
Library | D3D9.lib |