Partager via


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
Vous ne pouvez pas spécifier de sous-correction lors de l’utilisation de D3DLOCK_DISCARD. Pour obtenir une description des indicateurs, consultez D3DLOCK.

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

IDirect3DDevice9::UpdateTexture

IDirect3DTexture9

IDirect3DTexture9::UnlockRect