Méthode IDirect3DDevice9Ex ::ResetEx (d3d9.h)
Réinitialise le type, la taille et le format de la chaîne d’échange avec toutes les autres surfaces persistantes.
Syntaxe
HRESULT ResetEx(
[in, out] D3DPRESENT_PARAMETERS *pPresentationParameters,
[in, out] D3DDISPLAYMODEEX *pFullscreenDisplayMode
);
Paramètres
[in, out] pPresentationParameters
Type : D3DPRESENT_PARAMETERS*
Pointeur vers une structure D3DPRESENT_PARAMETERS , décrivant les nouveaux paramètres de présentation. Cette valeur ne peut pas être NULL.
Lorsque vous passez en mode plein écran, Direct3D essaie de trouver un format de bureau qui correspond au format de mémoire tampon arrière, afin que les formats mémoire tampon arrière et mémoire tampon avant soient identiques (pour éliminer la nécessité de la conversion de couleur).
Lorsque cette méthode retourne :
- BackBufferCount, BackBufferWidth et BackBufferHeight sont définis sur zéro.
- BackBufferFormat est défini sur D3DFORMAT pour le mode fenêtré uniquement ; un mode plein écran doit spécifier un format.
[in, out] pFullscreenDisplayMode
Type : D3DDISPLAYMODEEX*
Pointeur vers une structure D3DDISPLAYMODEEX qui décrit les propriétés du mode d’affichage souhaité. Cette valeur doit être fournie pour les applications plein écran, mais peut être NULL pour les applications fenêtrés.
Valeur retournée
Type : HRESULT
La méthode peut retourner : D3D_OK, D3DERR_DEVICELOST ou D3DERR_DEVICEHUNG (voir D3DERR).
Si cette méthode retourne D3DERR_DEVICELOST ou D3DERR_DEVICEHUNG l’application peut uniquement appeler IDirect3DDevice9Ex ::ResetEx, IDirect3DDevice9Ex ::CheckDeviceState ou libérer le pointeur d’interface ; tout autre appel d’API entraîne une exception.
Remarques
Si un appel à IDirect3DDevice9Ex ::ResetEx échoue, l’appareil est placé dans l’état perdu (comme indiqué par une valeur de retour de D3DERR_DEVICELOST d’un appel à IDirect3DDevice9Ex ::CheckDeviceState). Consultez IDirect3DDevice9Ex ::CheckDeviceState et Lost Device Behavior Changes pour plus d’informations sur l’utilisation d’IDirect3DDevice9Ex ::ResetEx dans le contexte d’appareils perdus.
Contrairement aux versions précédentes de DirectX, l’appel de IDirect3DDevice9Ex ::ResetEx n’entraîne pas la perte de surfaces, de textures ou d’informations d’état.
Les nuanceurs de pixels et les nuanceurs de vertex survivent aux appels IDirect3DDevice9Ex ::ResetEx pour Direct3D 9. Ils n’ont pas besoin d’être recréé explicitement par l’application.
Il existe deux types de chaînes d’échange : plein écran ou fenêtré. Si la nouvelle chaîne d’échange est en plein écran, l’adaptateur est placé en mode d’affichage correspondant à la nouvelle taille.
Les applications peuvent s’attendre à ce que des messages leur soient envoyés pendant cet appel (par exemple, avant que cet appel ne soit retourné) ; les applications doivent prendre des précautions pour ne pas appeler Direct3D pour le moment.
Un appel à IDirect3DDevice9Ex ::ResetEx échoue s’il est appelé sur un thread différent de celui utilisé pour créer l’appareil en cours de réinitialisation.
D3DFMT_UNKNOWN peut être spécifié pour le format de mémoire tampon arrière en mode fenêtré lors de l’appel de IDirect3D9Ex ::CreateDeviceEx, IDirect3DDevice9Ex ::ResetEx et IDirect3DDevice9 ::CreateAdditionalSwapChain. Cela signifie que l’application n’a pas besoin d’interroger le format de bureau actuel avant d’appeler IDirect3D9Ex ::CreateDeviceEx pour le mode fenêtré. Pour le mode plein écran, le format de mémoire tampon arrière doit être spécifié. La définition de BackBufferCount comme égal à zéro (BackBufferCount = 0) entraîne la création d’une mémoire tampon arrière.
Lorsque vous essayez de réinitialiser plusieurs cartes d’affichage dans un groupe, définissez pPresentationParameters pour qu’il pointe vers un tableau de structures D3DPRESENT_PARAMETERS , une pour chaque affichage dans le groupe d’adaptateurs.
Si un appareil multihead a été créé avec D3DCREATE_ADAPTERGROUP_DEVICE, IDirect3DDevice9Ex ::ResetEx nécessite un tableau de structures D3DPRESENT_PARAMETERS où chaque structure doit spécifier un affichage en plein écran. Pour revenir au mode fenêtré, l’application doit détruire l’appareil et recréer un appareil non multihead en mode fenêtré.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | d3d9.h |
Bibliothèque | D3D9.lib |