Metodo IDirect3DSurface9::LockRect (d3d9helper.h)
Blocca un rettangolo su una superficie.
Sintassi
HRESULT LockRect(
[out] D3DLOCKED_RECT *pLockedRect,
[in] const RECT *pRect,
[in] DWORD Flags
);
Parametri
[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 dirty viene espansa per coprire l'intera superficie.
[in] Flags
Tipo: DWORD
Combinazione di zero o più flag di blocco che descrivono il tipo di blocco da eseguire. Per questo metodo, i flag validi sono:
- D3DLOCK_DISCARD
- D3DLOCK_DONOTWAIT
- D3DLOCK_NO_DIRTY_UPDATE
- D3DLOCK_NOSYSLOCK
- D3DLOCK_READONLY
Valore restituito
Tipo: HRESULT
Se il metodo ha esito positivo, il valore restituito viene D3D_OK.
Se il metodo ha esito negativo, il valore restituito può essere D3DERR_INVALIDCALL o D3DERR_WASSTILLDRAWING.
Commenti
Se viene specificato il flag D3DLOCK_DONOTWAIT e il driver non può bloccare immediatamente la superficie, IDirect3DSurface9::LockRect restituirà D3DERR_WASSTILLDRAWING in modo che un'applicazione possa usare i cicli della CPU durante l'attesa che il driver blocchi la superficie.
L'unico formato bloccabile per una superficie depth-stencil è D3DFMT_D16_LOCKABLE. Vedere D3DFORMAT.
Per motivi di prestazioni, le aree dirty vengono registrate solo per il livello zero di una trama. Le aree dirty vengono registrate automaticamente quando IDirect3DSurface9::LockRect viene chiamato senza D3DLOCK_NO_DIRTY_UPDATE o D3DLOCK_READONLY. Per altre informazioni , vedere IDirect3DDevice9::UpdateTexture .
Un buffer back multisample non può essere bloccato.
Questo metodo non può recuperare dati da una superficie contenuta in 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 delle trame dalla memoria del dispositivo alla memoria di sistema.
Requisiti
Piattaforma di destinazione | Windows |
Intestazione | d3d9helper.h (include D3D9.h) |
Libreria | D3D9.lib |