Méthode IDirect3DTexture9::LockRect (d3d9.h)
Verrouille un rectangle sur une ressource de texture.
Syntaxe
HRESULT LockRect(
[in] UINT Level,
[out] D3DLOCKED_RECT *pLockedRect,
[in] const RECT *pRect,
[in] DWORD Flags
);
Paramètres
[in] Level
Type : UINT
Spécifie le niveau de la ressource de texture à verrouiller.
[out] pLockedRect
Type : D3DLOCKED_RECT*
Pointeur vers une structure D3DLOCKED_RECT , décrivant la région verrouillée.
[in] pRect
Type : const RECT*
Pointeur vers un rectangle à verrouiller. Spécifié par un pointeur vers une structure RECT. La spécification NULL pour ce paramètre développe la région sale pour couvrir l’ensemble de la texture.
[in] Flags
Type : DWORD
Combinaison de zéro ou plusieurs indicateurs de verrouillage qui décrivent le type de verrou à effectuer. Pour cette méthode, les indicateurs valides sont les suivants :
- D3DLOCK_DISCARD
- D3DLOCK_NO_DIRTY_UPDATE
- D3DLOCK_NOSYSLOCK
- D3DLOCK_READONLY
Valeur retournée
Type : HRESULT
Si la méthode réussit, la valeur de retour est D3D_OK. Si la méthode échoue, la valeur de retour peut être D3DERR_INVALIDCALL.
Notes
Les textures créées avec D3DPOOL_DEFAULT ne sont pas verrouillables. Les textures créées dans la mémoire vidéo sont verrouillables lorsqu’elles sont créées avec USAGE_DYNAMIC.
Pour des raisons de performances, sale régions sont enregistrées uniquement pour le niveau zéro d’une texture. Les régions sales sont automatiquement enregistrées lorsque IDirect3DTexture9::LockRect est appelé sans D3DLOCK_NO_DIRTY_UPDATE ni D3DLOCK_READONLY. Pour plus d’informations, consultez IDirect3DDevice9::UpdateTexture .
Le seul format verrouillable pour une texture de gabarit de profondeur est D3DLOCK_D16_LOCKABLE.
Les textures de mémoire vidéo ne peuvent pas être verrouillées, mais doivent être modifiées en appelant IDirect3DDevice9::UpdateSurface ou IDirect3DDevice9::UpdateTexture. Il existe des exceptions pour certains formats de pixels de pilote propriétaires que Direct3D 9 ne reconnaît pas. Ceux-ci peuvent être verrouillés.
Cette méthode ne peut pas récupérer des données à partir d’une ressource de texture créée avec D3DUSAGE_RENDERTARGET , car une telle texture doit être affectée à D3DPOOL_DEFAULT mémoire et n’est donc pas verrouillable. Dans ce cas, utilisez plutôt IDirect3DDevice9::GetRenderTargetData pour copier les données de texture de la mémoire de l’appareil vers la mémoire système.
Spécifications
Plateforme cible | Windows |
En-tête | d3d9.h (inclure D3D9.h) |
Bibliothèque | D3D9.lib |
Voir aussi
IDirect3DDevice9::GetRenderTargetData