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.
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 |