Skip to main content
Configura um plano de apresentação para composição com ID3D12CommandQueue::PresentX.

Sintaxe

Membros

pTokens Tipo: D3D12XBOX_FRAME_PIPELINE_TOKEN Token de pipeline que identifica o quadro usado na produção dos ppResources que constituem o plano. O Token é gerado na origem do quadro e retornado por meio de uma chamada a ID3D12Device::WaitFrameEventX com o evento D3D12XBOX_FRAME_EVENT_ORIGIN. ResourceCount Tipo: UINT Número de recursos a serem apresentados para o plano. Vários recursos podem consistir em texturas dedicadas de cor e alfa e/ou em exibições exclusivas para cada jogador. ppResources Tipo: ID3D12Resource* Ponteiro para o primeiro elemento de uma matriz de recursos a serem apresentados na tela para o plano. Se o suporte a recursos de exibição exclusivos for adicionado no futuro, a matriz deverá ser organizada por grupo de canais (por exemplo, RGBE ou A8) e depois por jogador. Ao apresentar um par RGBE + A8, o recurso RGBE deve ser ordenado antes do recurso A8. pSrcViewRects Tipo: D3D12_RECT* Ponteiro opcional para o primeiro elemento de uma matriz de retângulos, correspondente à região de exibição, de cada jogador incluído na apresentação. O tamanho da matriz é definido pelo parâmetro ViewCount passado para PresentX. Durante a apresentação, cada região de exibição definida pelo seu retângulo de origem será dimensionada para uma região de destino definida na tela, conforme especificado por pDestPlacementBase. Esses retângulos podem se sobrepor e/ou coincidir; eles apenas identificam as extensões desejadas para a exibição de cada jogador. É possível passar nulo para o membro para definir retângulos de exibição de origem que se estendem para cobrir totalmente o plano, conforme especificado pelas dimensões do recurso associado ao plano. pDestPlacementBase Tipo: D3D12XBOX_VIEW_RECT* Ponteiro opcional para exatamente um retângulo de exibição normalizado que define a região de destino do primeiro jogador incluído na apresentação. Durante a apresentação, o retângulo de exibição de origem do primeiro jogador no recurso do plano será dimensionado para preencher a região de destino definida por pDestPlacementBase; os retângulos de exibição de origem de todos os outros jogadores serão dimensionados para regiões de destino calculadas indiretamente, de acordo com a relação entre as regiões de origem e destino do primeiro jogador. Mais especificamente, pDestPlacementBase é usado para derivar internamente um deslocamento de posicionamento e fatores de escala para a exibição do primeiro jogador, e todas as outras exibições empregam escala idêntica e deslocamentos complementares. PresentX não pode ser usado para realizar dimensionamento e composição independentes de exibições de origem para regiões de destino arbitrárias; em vez disso, PresentX dimensiona e desloca uniformemente as exibições de origem para a tela. O retângulo de exibição de posicionamento de destino é expresso em coordenadas de ponto flutuante normalizadas. Valores left e top de 0.0 correspondem ao extremo superior esquerdo da tela de destino. Valores right e bottom de 1.0 correspondem ao extremo inferior direito da tela de destino. É possível passar nulo para o membro para definir a cobertura total de destino para a exibição do primeiro jogador. Como exemplo do uso de pDestPlacementBase na presença de vários pSrcViewRects, considere um jogo em tela dividida com três jogadores. Para apresentar as exibições dos jogadores a partir de um recurso de troca de 3840 x 2160 na forma de uma única linha com três colunas de tamanho idêntico que cobre toda a tela, um chamador forneceria o seguinte: 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 Tipo: DXGI_COLOR_SPACE_TYPE* Espaço de cores no qual interpretar os dados de recurso fornecidos para o plano. O espaço de cores também pode ser usado para determinar quais recursos dos planos fornecidos devem ser selecionados para apresentação na tela (HDR) e quais devem ser usados para codificação do GameDVR (SDR). Se nenhum espaço de cores for fornecido (ou seja, se os próprios D3D12XBOX_PRESENT_PLANE_PARAMETERS forem nulos), o espaço de cores será definido como DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709. Os espaços de cores válidos são DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 e DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020, ambos com correção de gama. O XBOX Series X|S permite os espaços de cores com correção de gama DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P709 e DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_D65P3. Além disso, o XBOX Series X|S permite os espaços de cores de luz linear DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709, DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_D65P3 e DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P2020. Os espaços de cores de luz linear só são permitidos com o formato de recurso de troca DXGI_FORMAT_R9G9B9E5_SHAREDEXP. Os espaços de cores SDR com correção de gama são permitidos com recursos de troca de qualquer formato, mas os espaços de cores HDR só são permitidos com recursos de troca do formato DXGI_FORMAT_R10G10B10A2_UNORM. Com DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709, espera-se que o conteúdo no swapbuffer use primárias 709 e que o intervalo de valores por canal esteja entre 0.0 e 1.0. No modo HDR, o intervalo de 0.0 a 1.0 é interpretado como entre 0 e 10.000 nits. Em outras palavras, um branco D65 de 10.000 nits é representado como (1.0, 1.0, 1.0). Da mesma forma, com DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_D65P3, o intervalo de 0.0 a 1.0 é interpretado como entre 0 e 10.000 nits, e um branco D65 de 10.000 nits é (1.0, 1.0, 1.0). Espera-se que o swapbuffer contenha conteúdo criado com primárias de cor P3 e um ponto branco D65. Isso é diferente do espaço de cores DCI_P3, em que o ponto branco não é D65. Com DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P2020, espera-se que o swapbuffer contenha primárias de cor 2020 com um ponto branco D65 e no intervalo entre 0.0 e 1.0, que é interpretado como entre 0 e 10.000 nits. Um branco D65 de 10.000 nits é (1.0, 1.0, 1.0). O espaço de cores DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P709 espera que o conteúdo do swapbuffer seja criado com primárias de cor Rec. 709 com um ponto branco D65, mas codificado com a curva PQ (ST.2084). O espaço de cores DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_D65P3 espera que o conteúdo do swapbuffer seja criado com primárias de cor P3 com um ponto branco D65, mas codificado com a curva PQ (ST.2084) e não com uma curva de potência 1.0/2.6 ou sRGB. Isso é diferente do DCI_P3, que usa uma codificação e um ponto branco diferentes. O espaço de cores DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 espera que o conteúdo do swapbuffer seja criado com primárias de cor Rec. 2020 com um ponto branco D65 e codificado com uma curva PQ (ST.2084). ScaleFilter Tipo: D3D12XBOX_PRESENT_PLANE_SCALE_FILTER Filtro de escala preferencial a ser empregado ao fazer upsampling de uma origem de plano para um destino de exibição maior. O filtro fornecido é apenas uma solicitação e não há garantia de que será aplicado na saída. O filtro de escala é ignorado no XBOX Series X|S. ExtendedDescCount Tipo: UINT Número de descrições de plano estendidas fornecidas na lista pExtendedDescs. pExtendedDescs Tipo: D3D12XBOX_PRESENT_PLANE_DESC* Ponteiro opcional para o primeiro elemento de uma matriz de descrições de plano estendidas. Use o ponteiro para personalização adicional do plano usado na apresentação. Flags Tipo: D3D12XBOX_PRESENT_PLANE_FLAGS Um conjunto de sinalizadores usados para fornecer controle adicional sobre a composição e a exibição do plano.

Comentários

Os títulos podem configurar dois planos de exibição que podem ser usados para compor automaticamente a interface do usuário/HUD sobre a cena. Nesse caso, a composição é feita pelo hardware de exibição sem custos extras de GPU, memória ou latência. Para obter mais informações sobre como configurar isso, consulte Sobreposições de hardware e recursos de troca

Requisitos

Cabeçalho: d3d12_x.h Plataformas com suporte: família XBOX One

Confira também

PresentX
Last modified on October 6, 2026