Méthode IDirect3DSurface9 ::LockRect (d3d9.h)
Verrouille un rectangle sur une surface.
Syntaxe
HRESULT LockRect(
[out] D3DLOCKED_RECT *pLockedRect,
[in] const RECT *pRect,
[in] DWORD Flags
);
Paramètres
[out] pLockedRect
Type : D3DLOCKED_RECT*
Pointeur vers une structure D3DLOCKED_RECT qui décrit 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 de NULL pour ce paramètre développe la région sale pour couvrir toute la surface.
[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_DONOTWAIT
- 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 ou D3DERR_WASSTILLDRAWING.
Remarques
Si l’indicateur D3DLOCK_DONOTWAIT est spécifié et que le pilote ne peut pas verrouiller immédiatement la surface, IDirect3DSurface9 ::LockRect retourne D3DERR_WASSTILLDRAWING afin qu’une application puisse utiliser les cycles du processeur en attendant que le pilote verrouille la surface.
Le seul format verrouillable pour une surface de gabarit de profondeur est D3DFMT_D16_LOCKABLE. Voir D3DFORMAT.
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 IDirect3DSurface9 ::LockRect est appelé sans D3DLOCK_NO_DIRTY_UPDATE ni D3DLOCK_READONLY. Pour plus d’informations, consultez IDirect3DDevice9 ::UpdateTexture .
Une mémoire tampon d’arrière-échantillonnage multiple ne peut pas être verrouillée.
Cette méthode ne peut pas récupérer les données d’une surface contenue dans 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 à la place IDirect3DDevice9 ::GetRenderTargetData pour copier les données de texture de la mémoire de l’appareil vers la mémoire système.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | d3d9.h (inclure D3D9.h) |
Bibliothèque | D3D9.lib |