Méthode IDirect3DDevice9 ::SetRenderTarget (d3d9.h)
Définit une nouvelle mémoire tampon de couleurs 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 couleurs. Si la valeur est NULL, la mémoire tampon de couleurs de l’objet 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ée.
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.
Remarques
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 d’échantillonnage multiple 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 du gabarit de profondeur. Consultez IDirect3D9 ::CheckDepthStencilMatch.
- La taille de la surface du 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 résultante à IDirect3DDevice9 ::SetRenderTarget.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | d3d9.h (inclure D3D9.h) |
Bibliothèque | D3D9.lib |