Méthode IDirect3DDevice9::UpdateSurface (d3d9helper.h)

Copie des sous-ensembles rectangulaires de pixels d’une surface à une autre.

Syntaxe

HRESULT UpdateSurface(
  [in] IDirect3DSurface9 *pSourceSurface,
  [in] const RECT        *pSourceRect,
  [in] IDirect3DSurface9 *pDestinationSurface,
  [in] const POINT       *pDestPoint
);

Paramètres

[in] pSourceSurface

Type : IDirect3DSurface9*

Pointeur vers une interface IDirect3DSurface9 , représentant la surface source. Ce paramètre doit pointer vers une surface différente de pDestinationSurface.

[in] pSourceRect

Type : const RECT*

Pointeur vers un rectangle sur la surface source. La spécification NULL pour ce paramètre entraîne la copie de la surface entière.

[in] pDestinationSurface

Type : IDirect3DSurface9*

Pointeur vers une interface IDirect3DSurface9 , représentant la surface de destination.

[in] pDestPoint

Type : const POINT*

Pointeur vers le coin supérieur gauche du rectangle de destination. La spécification NULL pour ce paramètre entraîne la copie de la surface entière.

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 l’une des suivantes : D3DERR_INVALIDCALL.

Notes

Cette méthode est similaire à CopyRects dans DirectX 8.

Cette fonction présente les restrictions suivantes.

  • La surface source doit avoir été créée avec D3DPOOL_SYSTEMMEM.
  • L’aire de destination doit avoir été créée avec D3DPOOL_DEFAULT.
  • Aucune surface ne peut être verrouillée ou contenir un contexte d’appareil en suspens.
  • Aucune surface ne peut être créée avec le multi-échantillonnage. Le seul indicateur valide pour les deux surfaces est D3DMULTISAMPLE_NONE.
  • Le format surface ne peut pas être un format de gabarit de profondeur.
  • Les rects source et dest doivent s’insérer dans la surface.
  • Aucun étirement ou réduction n’est autorisé (les rects doivent avoir la même taille).
  • Le format source doit correspondre au format dest.
Le tableau suivant montre les combinaisons prises en charge.
Formats dest
Texture Texture RT RT Hors écran simple
Formats Src Texture Oui Oui Oui* Oui
Texture RT Non Non Non Non
RT Non Non Non Non
Hors écran simple Oui Oui Oui Oui
 
  • Si le pilote ne prend pas en charge la copie demandée, elle sera émulée à l’aide du verrouillage et de la copie.

Si l’application doit copier des données d’une cible de rendu D3DPOOL_DEFAULT vers une surface de D3DPOOL_SYSTEMMEM, elle peut utiliser GetRenderTargetData.

Spécifications

   
Plateforme cible Windows
En-tête d3d9helper.h (incluez D3D9.h)
Bibliothèque D3D9.lib

Voir aussi

IDirect3DDevice9