Metodo IDirect3DTexture9::LockRect (d3d9.h)
Blocca un rettangolo in una risorsa trama.
Sintassi
HRESULT LockRect(
[in] UINT Level,
[out] D3DLOCKED_RECT *pLockedRect,
[in] const RECT *pRect,
[in] DWORD Flags
);
Parametri
[in] Level
Tipo: UINT
Specifica il livello della risorsa trama da bloccare.
[out] pLockedRect
Tipo: D3DLOCKED_RECT*
Puntatore a una struttura D3DLOCKED_RECT , che descrive l'area bloccata.
[in] pRect
Tipo: const RECT*
Puntatore a un rettangolo da bloccare. Specificato da un puntatore a una struttura RECT. Se si specifica NULL per questo parametro, l'area sporca viene espansa per coprire l'intera trama.
[in] Flags
Tipo: DWORD
Combinazione di flag di blocco zero o più che descrivono il tipo di blocco da eseguire. Per questo metodo, i flag validi sono:
- D3DLOCK_DISCARD
- D3DLOCK_NO_DIRTY_UPDATE
- D3DLOCK_NOSYSLOCK
- D3DLOCK_READONLY
Valore restituito
Tipo: HRESULT
Se il metodo ha esito positivo, il valore restituito è D3D_OK. Se il metodo ha esito negativo, il valore restituito può essere D3DERR_INVALIDCALL.
Commenti
Le trame create con D3DPOOL_DEFAULT non sono bloccabili. Le trame create in memoria video sono bloccate quando vengono create con USAGE_DYNAMIC.
Per motivi di prestazioni, le aree sporche vengono registrate solo per il livello zero di una trama. Le aree sporche vengono registrate automaticamente quando viene chiamato IDirect3DTexture9::LockRect senza D3DLOCK_NO_DIRTY_UPDATE o D3DLOCK_READONLY . Per altre informazioni, vedere IDirect3DDevice9::UpdateTexture .
L'unico formato bloccabile per una trama a stencil di profondità è D3DLOCK_D16_LOCKABLE.
Le trame di memoria video non possono essere bloccate, ma devono essere modificate chiamando IDirect3DDevice9::UpdateSurface o IDirect3DDevice9::UpdateTexture. Esistono eccezioni per alcuni formati di pixel del driver proprietari che Direct3D 9 non riconosce. Questi possono essere bloccati.
Questo metodo non può recuperare dati da una risorsa trama creata con D3DUSAGE_RENDERTARGET perché tale trama deve essere assegnata a D3DPOOL_DEFAULT memoria e pertanto non è bloccabile. In questo caso, usare invece IDirect3DDevice9::GetRenderTargetData per copiare i dati della trama dalla memoria del dispositivo alla memoria di sistema.
Requisiti
Piattaforma di destinazione | Windows |
Intestazione | d3d9.h (includere D3D9.h) |
Libreria | D3D9.lib |
Vedi anche
IDirect3DDevice9::GetRenderTargetData