IDirect3DSurface9::LockRect メソッド (d3d9.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 |
ヘッダー | d3d9.h (D3D9.h を含む) |
Library | D3D9.lib |