Partager via


Méthode IDirect3DDevice9 ::UpdateSurface (d3d9.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 de 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 de 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.

Remarques

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.
  • La surface de destination doit avoir été créée avec D3DPOOL_DEFAULT.
  • Aucune surface ne peut être verrouillée ou contenir un contexte d’appareil exceptionnel.
  • Aucune des surfaces ne peut être créée avec l’échantillonnage multiple. Le seul indicateur valide pour les deux surfaces est D3DMULTISAMPLE_NONE.
  • Le format de surface ne peut pas être un format de gabarit de profondeur.
  • Les rects source et dest doivent tenir 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 présente 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 est é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 sur une surface D3DPOOL_SYSTEMMEM, elle peut utiliser GetRenderTargetData.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête d3d9.h (inclure D3D9.h)
Bibliothèque D3D9.lib

Voir aussi

IDirect3DDevice9