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
戻り値
型: HRESULT
メソッドが成功した場合、戻り値はD3D_OK。 メソッドが失敗した場合は、戻り値をD3DERR_INVALIDCALLできます。
注釈
D3DPOOL_DEFAULTで作成されたテクスチャはロックできません。 ビデオ メモリで作成されたテクスチャは、 USAGE_DYNAMICを使用して作成するとロックできます。
パフォーマンス上の理由から、ダーティ領域はテクスチャのレベル 0 に対してのみ記録されます。 IDirect3DTexture9::LockRect がD3DLOCK_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