Partager via


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

Définit une nouvelle mémoire tampon de couleur pour l’appareil.

Syntaxe

HRESULT SetRenderTarget(
  [in] DWORD             RenderTargetIndex,
  [in] IDirect3DSurface9 *pRenderTarget
);

Paramètres

[in] RenderTargetIndex

Type : DWORD

Index de la cible de rendu. Consultez la section Notes.

[in] pRenderTarget

Type : IDirect3DSurface9*

Pointeur vers une nouvelle mémoire tampon de couleur. Si la valeur est NULL, la mémoire tampon de couleur du RenderTargetIndex correspondant est désactivée. Les appareils doivent toujours être associés à une mémoire tampon de couleur. La nouvelle surface cible de rendu doit avoir au moins D3DUSAGE_RENDERTARGET spécifié.

Valeur retournée

Type : HRESULT

Si la méthode réussit, la valeur de retour est D3D_OK. Cette méthode retourne D3DERR_INVALIDCALL si :

  • pRenderTarget = NULL et RenderTargetIndex = 0
  • pRenderTarget a la valeur != NULL et la cible de rendu n’est pas valide.

Notes

L’appareil peut prendre en charge plusieurs cibles de rendu. Le nombre de cibles de rendu prises en charge par un appareil est contenu dans le membre NumSimultaneousRTs de D3DCAPS9. Consultez Cibles de rendu multiples (Direct3D 9).

La définition d’une nouvelle cible de rendu entraîne la définition de la fenêtre d’affichage (voir Fenêtres d’affichage et découpage (Direct3D 9)) sur la taille complète de la nouvelle cible de rendu.

Certains matériels testent la compatibilité de la mémoire tampon de gabarit de profondeur avec la mémoire tampon de couleur. Si cette opération est effectuée, elle est effectuée uniquement dans une build de débogage.

Les restrictions relatives à l’utilisation de cette méthode sont les suivantes :

  • Le type multi-échantillon doit être le même pour la cible de rendu et la surface de gabarit de profondeur.
  • Les formats doivent être compatibles pour la cible de rendu et la surface de gabarit de profondeur. Consultez IDirect3D9::CheckDepthStencilMatch.
  • La taille de la surface de gabarit de profondeur doit être supérieure ou égale à la taille de la cible de rendu.
Ces restrictions sont validées uniquement lors de l’utilisation du runtime de débogage lorsque l’une des méthodes IDirect3DDevice9Draw est appelée.

Les textures de cube diffèrent des autres surfaces en ce qu’il s’agit de collections de surfaces. Pour appeler IDirect3DDevice9::SetRenderTarget avec une texture de cube, vous devez sélectionner un visage individuel à l’aide de IDirect3DCubeTexture9::GetCubeMapSurface et passer la surface obtenue à IDirect3DDevice9::SetRenderTarget.

Spécifications

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

Voir aussi

IDirect3DDevice9