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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour