Skip to main content
Configure un plan de présentation pour la composition avec ID3D12CommandQueue::PresentX.

Syntaxe

Membres

pTokens Type : D3D12XBOX_FRAME_PIPELINE_TOKEN Jeton de pipeline qui identifie la frame utilisée pour produire les ppResources qui constituent le plan. Le Token est généré à l’origine de la frame et retourné par un appel à ID3D12Device::WaitFrameEventX avec l’événement D3D12XBOX_FRAME_EVENT_ORIGIN. ResourceCount Type : UINT Nombre de ressources à présenter pour le plan. Plusieurs ressources peuvent être constituées de textures de couleur et alpha dédiées et/ou de vues uniques pour chaque joueur. ppResources Type : ID3D12Resource* Pointeur vers le premier élément d’un tableau de ressources à présenter à l’affichage pour le plan. Si la prise en charge des ressources de vue uniques est ajoutée à l’avenir, le tableau doit être organisé par groupe de canaux (par exemple, RGBE ou A8), puis par joueur. Lors de la présentation d’une paire RGBE + A8, la ressource RGBE doit être placée avant la ressource A8. pSrcViewRects Type : D3D12_RECT* Pointeur facultatif vers le premier élément d’un tableau de rectangles, correspondant à la région de vue de chaque joueur inclus dans la présentation. La taille du tableau est définie par le paramètre ViewCount passé à PresentX. Pendant la présentation, chaque région de vue définie par son rectangle source est mise à l’échelle vers une région de destination définie sur l’affichage, comme spécifié par pDestPlacementBase. Ces rectangles peuvent se chevaucher et/ou coïncider ; ils identifient simplement l’étendue souhaitée pour chaque vue de joueur. La valeur Null peut être passée pour ce membre afin de définir des rectangles de vue source qui couvrent entièrement le plan, comme spécifié par les dimensions de la ressource associée au plan. pDestPlacementBase Type : D3D12XBOX_VIEW_RECT* Pointeur facultatif vers exactement un rectangle de vue normalisé définissant la région de destination du premier joueur inclus dans la présentation. Pendant la présentation, le rectangle de vue source du premier joueur dans la ressource du plan est mis à l’échelle pour remplir la région de destination définie par pDestPlacementBase ; les rectangles de vue source de tous les autres joueurs sont mis à l’échelle vers des régions de destination calculées indirectement, en fonction de la relation entre les régions source et de destination du premier joueur. Plus précisément, pDestPlacementBase est utilisé en interne pour dériver un décalage de placement et des facteurs d’échelle pour la vue du premier joueur, et toutes les autres vues utilisent une mise à l’échelle identique et des décalages complémentaires. PresentX ne peut pas être utilisé pour effectuer une mise à l’échelle et une composition indépendantes des vues source vers des régions de destination arbitraires ; PresentX met plutôt à l’échelle et décale uniformément les vues source vers l’affichage. Le rectangle de vue de placement de destination est exprimé en coordonnées normalisées à virgule flottante. Des valeurs gauche et haut de 0.0 correspondent à l’extrémité supérieure gauche de l’affichage de destination. Des valeurs droite et bas de 1.0 correspondent à l’extrémité inférieure droite de l’affichage de destination. La valeur Null peut être passée pour ce membre afin de définir une couverture complète de la destination pour la vue du premier joueur. Pour illustrer l’utilisation de pDestPlacementBase en présence de plusieurs pSrcViewRects, prenons l’exemple d’un jeu en écran partagé impliquant trois joueurs. Pour présenter les vues des joueurs à partir d’une ressource d’échange de 3840 x 2160 sous la forme d’une seule ligne de trois colonnes de taille identique couvrant tout l’affichage, l’appelant fournirait ce qui suit : pSrcViewRects : {0, 0, 1280, 2160}, {1280, 0, 2560, 2160}, {2560, 0, 3840, 2160} pDestPlacementBase : {0.0f, 0.0f, 1.0f / 3.0f, 1.0f} ColorSpace Type : DXGI_COLOR_SPACE_TYPE* Espace colorimétrique dans lequel interpréter les données de ressource fournies pour le plan. L’espace colorimétrique peut également être utilisé pour déterminer quelles ressources des plans fournis doivent être sélectionnées pour la présentation à l’affichage (HDR) et lesquelles doivent être utilisées pour l’encodage GameDVR (SDR). Si aucun espace colorimétrique n’est fourni (autrement dit, si les D3D12XBOX_PRESENT_PLANE_PARAMETERS eux-mêmes sont null), l’espace colorimétrique est défini sur DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709. Les espaces colorimétriques valides sont DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 et DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020, tous deux avec correction gamma. XBOX Series X|S autorise les espaces colorimétriques avec correction gamma DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P709 et DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_D65P3. En outre, XBOX Series X|S autorise les espaces colorimétriques à lumière linéaire DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709, DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_D65P3 et DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P2020. Les espaces colorimétriques à lumière linéaire ne sont autorisés qu’avec le format de ressource d’échange DXGI_FORMAT_R9G9B9E5_SHAREDEXP. Les espaces colorimétriques SDR avec correction gamma sont autorisés avec des ressources d’échange de n’importe quel format, mais les espaces colorimétriques HDR ne sont autorisés qu’avec des ressources d’échange au format DXGI_FORMAT_R10G10B10A2_UNORM. Avec DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709, le contenu de la mémoire tampon d’échange doit utiliser les primaires 709, et la plage de valeurs par canal doit être comprise entre 0.0 et 1.0. En mode HDR, la plage de 0.0 à 1.0 est interprétée comme allant de 0 à 10 000 nits. Autrement dit, un blanc D65 de 10 000 nits est représenté par (1.0, 1.0, 1.0). De même, avec DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_D65P3, la plage de 0.0 à 1.0 est interprétée comme allant de 0 à 10 000 nits, et un blanc D65 de 10 000 nits correspond à (1.0, 1.0, 1.0). La mémoire tampon d’échange doit contenir du contenu créé avec des primaires de couleur P3 et un point blanc D65. Cela diffère de l’espace colorimétrique DCI_P3, dans lequel le point blanc n’est pas D65. Avec DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P2020, la mémoire tampon d’échange doit contenir des primaires de couleur 2020 avec un point blanc D65, dans la plage de 0.0 à 1.0, interprétée comme allant de 0 à 10 000 nits. Un blanc D65 de 10 000 nits correspond à (1.0, 1.0, 1.0). L’espace colorimétrique DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P709 attend un contenu de mémoire tampon d’échange créé avec les primaires de couleur Rec. 709 et un point blanc D65, mais encodé avec la courbe PQ (ST.2084). L’espace colorimétrique DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_D65P3 attend un contenu de mémoire tampon d’échange créé avec les primaires de couleur P3 et un point blanc D65, mais encodé avec la courbe PQ (ST.2084), et non avec une courbe de puissance 1.0/2.6 ou sRGB. Cela diffère de DCI_P3, qui utilise un encodage et un point blanc différents. L’espace colorimétrique DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 attend un contenu de mémoire tampon d’échange créé avec les primaires de couleur Rec. 2020 et un point blanc D65, et encodé avec une courbe PQ (ST.2084). ScaleFilter Type : D3D12XBOX_PRESENT_PLANE_SCALE_FILTER Filtre de mise à l’échelle préféré à utiliser lors du suréchantillonnage d’une source de plan vers une destination d’affichage plus grande. Le filtre fourni n’est qu’une demande et son application en sortie n’est pas garantie. Le filtre de mise à l’échelle est ignoré sur XBOX Series X|S. ExtendedDescCount Type : UINT Nombre de descriptions de plan étendues fournies dans la liste pExtendedDescs. pExtendedDescs Type : D3D12XBOX_PRESENT_PLANE_DESC* Pointeur facultatif vers le premier élément d’un tableau de descriptions de plan étendues. Utilisez ce pointeur pour personnaliser davantage le plan utilisé lors de la présentation. Flags Type : D3D12XBOX_PRESENT_PLANE_FLAGS Ensemble d’indicateurs permettant de fournir un contrôle supplémentaire sur la composition et l’affichage du plan.

Remarques

Les titres peuvent configurer deux plans d’affichage, qui peuvent être utilisés pour composer automatiquement l’interface utilisateur/le HUD sur la scène. Dans ce cas, la composition est effectuée par le matériel d’affichage sans coût supplémentaire en GPU, en mémoire ou en latence. Pour plus d’informations sur la configuration, consultez Hardware overlays and swap resources

Configuration requise

En-tête : d3d12_x.h Plateformes prises en charge : famille XBOX One

Voir aussi

PresentX
Last modified on October 6, 2026