D3DPRESENT_PARAMETERS structure

Décrit les paramètres de présentation.

Syntaxe

typedef struct D3DPRESENT_PARAMETERS {
  UINT                BackBufferWidth;
  UINT                BackBufferHeight;
  D3DFORMAT           BackBufferFormat;
  UINT                BackBufferCount;
  D3DMULTISAMPLE_TYPE MultiSampleType;
  DWORD               MultiSampleQuality;
  D3DSWAPEFFECT       SwapEffect;
  HWND                hDeviceWindow;
  BOOL                Windowed;
  BOOL                EnableAutoDepthStencil;
  D3DFORMAT           AutoDepthStencilFormat;
  DWORD               Flags;
  UINT                FullScreen_RefreshRateInHz;
  UINT                PresentationInterval;
} D3DPRESENT_PARAMETERS, *LPD3DPRESENT_PARAMETERS;

Membres

BackBufferWidth

Type : UINT

Largeur des mémoires tampons arrière de la nouvelle chaîne d’échange, en pixels. Si fenêtré a la valeur FALSE (la présentation est en plein écran), cette valeur doit être égale à la largeur de l’un des modes d’affichage énumérés trouvés via EnumAdapterModes. Si Windowed a la valeur TRUE et que BackBufferWidth ou BackBufferHeight est égal à zéro, la dimension correspondante de la zone cliente de hDeviceWindow (ou la fenêtre focus, si hDeviceWindow a la valeur NULL) est prise.

BackBufferHeight

Type : UINT

Hauteur des mémoires tampons arrière de la nouvelle chaîne d’échange, en pixels. Si Fenêtré a la valeur FALSE (la présentation est en plein écran), cette valeur doit être égale à la hauteur de l’un des modes d’affichage énumérés trouvés via EnumAdapterModes. Si Windowed a la valeur TRUE et que BackBufferWidth ou BackBufferHeight est égal à zéro, la dimension correspondante de la zone cliente de hDeviceWindow (ou la fenêtre focus, si hDeviceWindow a la valeur NULL) est prise.

BackBufferFormat

Type : D3DFORMAT

Format de la mémoire tampon d’arrière-mémoire. Pour plus d’informations sur les formats, consultez D3DFORMAT. Cette valeur doit être l’un des formats de cible de rendu validés par CheckDeviceType. Vous pouvez utiliser GetDisplayMode pour obtenir le format actuel.

En fait, D3DFMT_UNKNOWN peut être spécifié pour backBufferFormat en mode fenêtré. Cela indique au runtime d’utiliser le format actuel du mode d’affichage et élimine la nécessité d’appeler GetDisplayMode.

Pour les applications fenêtrés, le format de la mémoire tampon d’arrière-plan n’a plus besoin de correspondre au format du mode d’affichage, car la conversion de couleur peut désormais être effectuée par le matériel (si le matériel prend en charge la conversion de couleurs). L’ensemble des formats de mémoire tampon arrière possibles est limité, mais le runtime autorise tout format de mémoire tampon d’arrière-mémoire valide à être présenté à n’importe quel format de bureau. (Il est également nécessaire que l’appareil soit opérable sur le bureau ; les appareils ne fonctionnent généralement pas en mode 8 bits par pixel.)

Les applications plein écran ne peuvent pas effectuer de conversion de couleurs.

BackBufferCount

Type : UINT

Cette valeur peut être comprise entre 0 et D3DPRESENT_BACK_BUFFERS_MAX (ou D3DPRESENT_BACK_BUFFERS_MAX_EX lors de l’utilisation de Direct3D 9Ex). Les valeurs de 0 sont traitées comme 1. Si le nombre de mémoires tampons d’arrière-mémoire ne peut pas être créée, le runtime échoue à l’appel de méthode et remplit cette valeur avec le nombre de mémoires tampons d’arrière-mémoire pouvant être créées. Par conséquent, une application peut appeler la méthode deux fois avec la même structure D3DPRESENT_PARAMETERS et s’attendre à ce qu’elle fonctionne la deuxième fois.

La méthode échoue si une mémoire tampon d’arrière-mémoire ne peut pas être créée. La valeur de BackBufferCount influence le jeu d’effets d’échange autorisé. Plus précisément, tout effet d’échange de D3DSWAPEFFECT_COPY nécessite qu’il y ait exactement une mémoire tampon d’arrière-mémoire.

MultiSampleType

Type : D3DMULTISAMPLE_TYPE

Membre du type énuméré D3DMULTISAMPLE_TYPE . La valeur doit être D3DMULTISAMPLE_NONE, sauf si SwapEffect a été défini sur D3DSWAPEFFECT_DISCARD. L’échantillonnage multiple n’est pris en charge que si l’effet d’échange est D3DSWAPEFFECT_DISCARD.

MultiSampleQuality

Type : DWORD

Niveau de qualité. La plage valide est comprise entre zéro et un de moins que le niveau retourné par pQualityLevels utilisé par CheckDeviceMultiSampleType. Le passage d’une valeur plus élevée retourne l’erreur D3DERR_INVALIDCALL. Les valeurs jumelées des cibles de rendu ou des surfaces de gabarit de profondeur et D3DMULTISAMPLE_TYPE doivent correspondre.

SwapEffect

Type : D3DSWAPEFFECT

Membre du type énuméré D3DSWAPEFFECT . Le runtime garantit la sémantique implicite concernant le comportement de l’échange de mémoire tampon ; Par conséquent, si Windowed a la valeur TRUE et Que SwapEffect est défini sur D3DSWAPEFFECT_FLIP, le runtime crée une mémoire tampon d’arrière-plan supplémentaire et copie la mémoire tampon avant au moment de la présentation.

D3DSWAPEFFECT_COPY nécessite que BackBufferCount soit défini sur 1.

D3DSWAPEFFECT_DISCARD sera appliqué dans le runtime de débogage en remplissant toute mémoire tampon avec du bruit après sa présentation.

Différences entre Direct3D9 et Direct3D9Ex :

  • Dans Direct3D9Ex, D3DSWAPEFFECT_FLIPEX est ajouté pour désigner le moment où une application adopte le mode retournement. Autrement dit, le cadre d’une application est passé en mode de fenêtre (au lieu d’être copié) dans le Gestionnaire de fenêtres de bureau (DWM) pour la composition. Le mode Retournement fournit une bande passante mémoire plus efficace et permet à une application de tirer parti des statistiques en plein écran. Il ne modifie pas le comportement en plein écran. Le comportement en mode retournement est disponible à partir de Windows 7.

 

hDeviceWindow

Type : HWND

La fenêtre de l’appareil détermine l’emplacement et la taille de la mémoire tampon d’arrière-plan à l’écran. Cette valeur est utilisée par Direct3D lorsque le contenu de la mémoire tampon d’arrière-plan est copié dans la mémoire tampon avant pendant la présente.

  • Pour une application plein écran, il s’agit d’un handle vers la fenêtre supérieure (qui est la fenêtre de focus).

    Pour les applications qui utilisent plusieurs appareils plein écran (par exemple, un système multimonitor), un seul appareil peut utiliser la fenêtre de focus comme fenêtre d’appareil. Tous les autres appareils doivent avoir des fenêtres d’appareil uniques.

  • Pour une application en mode fenêtré, ce handle est la fenêtre cible par défaut pour Present. Si ce handle a la valeur NULL, la fenêtre de focus est activée.

Notez qu’aucune tentative n’est effectuée par le runtime pour refléter les modifications apportées à la taille de la fenêtre par l’utilisateur. La mémoire tampon d’arrière-mémoire n’est pas réinitialisée implicitement lorsque cette fenêtre est réinitialisée. Toutefois, la méthode Present effectue le suivi automatique des modifications de position de la fenêtre.

Fenêtré

Type : BOOL

TRUE si l’application s’exécute avec fenêtre ; FALSE si l’application s’exécute en plein écran.

EnableAutoDepthStencil

Type : BOOL

Si cette valeur est TRUE, Direct3D gère les mémoires tampons de profondeur pour l’application. L’appareil crée une mémoire tampon de profondeur-gabarit lors de sa création. La mémoire tampon de profondeur-gabarit est automatiquement définie comme cible de rendu de l’appareil. Lorsque l’appareil est réinitialisé, la mémoire tampon de gabarit de profondeur est automatiquement détruite et recréée dans la nouvelle taille.

Si EnableAutoDepthStencil a la valeur TRUE, AutoDepthStencilFormat doit être un format de gabarit de profondeur valide.

AutoDepthStencilFormat

Type : D3DFORMAT

Membre du type énuméré D3DFORMAT . Format de la surface de gabarit de profondeur automatique que l’appareil va créer. Ce membre est ignoré, sauf si EnableAutoDepthStencil a la valeur TRUE.

Indicateurs

Type : DWORD

Une des constantes D3DPRESENTFLAG .

FullScreen_RefreshRateInHz

Type : UINT

Fréquence à laquelle l’adaptateur d’affichage actualise l’écran. La valeur dépend du mode d’exécution de l’application :

  • Pour le mode fenêtré, la fréquence d’actualisation doit être de 0.
  • Pour le mode plein écran, la fréquence d’actualisation est l’une des fréquences d’actualisation retournées par EnumAdapterModes.

PresentationInterval

Type : UINT

Vitesse maximale à laquelle les mémoires tampons d’arrière-plan de la chaîne d’échange peuvent être présentées à la mémoire tampon avant. Pour obtenir une explication détaillée des modes et des intervalles pris en charge, consultez D3DPRESENT.

Spécifications

Condition requise Valeur
En-tête
D3D9Types.h

Voir aussi

Direct3D Structures

CreateDevice

CreateAdditionalSwapChain

Présent

Réinitialiser