estrutura D3DKMT_PRESENTFLAGS (d3dkmthk.h)
A estrutura D3DKMT_PRESENTFLAGS identifica como executar uma operação atual.
Sintaxe
typedef struct _D3DKMT_PRESENTFLAGS {
union {
struct {
UINT Blt : 1;
UINT ColorFill : 1;
UINT Flip : 1;
UINT FlipDoNotFlip : 1;
UINT FlipDoNotWait : 1;
UINT FlipRestart : 1;
UINT DstRectValid : 1;
UINT SrcRectValid : 1;
UINT RestrictVidPnSource : 1;
UINT SrcColorKey : 1;
UINT DstColorKey : 1;
UINT LinearToSrgb : 1;
UINT PresentCountValid : 1;
UINT Rotate : 1;
UINT PresentToBitmap : 1;
UINT RedirectedFlip : 1;
UINT RedirectedBlt : 1;
UINT FlipStereo : 1;
UINT FlipStereoTemporaryMono : 1;
UINT FlipStereoPreferRight : 1;
UINT BltStereoUseRight : 1;
UINT PresentHistoryTokenOnly : 1;
UINT PresentRegionsValid : 1;
UINT PresentDDA : 1;
UINT ProtectedContentBlankedOut : 1;
UINT RemoteSession : 1;
UINT CrossAdapter : 1;
UINT DurationValid : 1;
UINT PresentIndirect : 1;
UINT PresentHMD : 1;
#if ...
UINT Reserved : 2;
#elif
UINT Reserved : 6;
#else
UINT Reserved : 15;
#endif
};
UINT Value;
};
} D3DKMT_PRESENTFLAGS;
Membros
Blt
Um valor UINT que especifica se os dados de transferência de bloco de bits (bitblt) devem ser transferidos para a superfície primária. Esse sinalizador de campo de bits pode ser usado com os sinalizadores de campo de bit DstRectValid e SrcRectValid .
Definir esse membro é equivalente a definir o primeiro bit do membro Value de 32 bits (0x00000001).
ColorFill
Um valor UINT que especifica se um bitblt colorfill deve ser executado na superfície primária usando o valor no membro Color da estrutura D3DKMT_PRESENT . Esse sinalizador de campo de bits pode ser usado com o sinalizador de campo de bit DstRectValid .
Definir esse membro é equivalente a definir o segundo bit do membro Value de 32 bits (0x00000002).
Flip
Um valor UINT que especifica se é necessário inverter para uma nova superfície.
Definir esse membro é equivalente a definir o terceiro bit do membro Value de 32 bits (0x00000004).
FlipDoNotFlip
Um valor UINT que especifica se as esperas enfileiradas devem ser inseridas no fluxo de renderização. A configuração desse membro indica a inversão para a mesma superfície que está sendo examinada no momento.
Definir esse membro é equivalente a definir o quarto bit do membro Value de 32 bits (0x00000008).
FlipDoNotWait
Um valor UINT que especifica se o ICD (driver de cliente instalável) do OpenGL exige que a operação atual aguarde até que o número de superfícies de inversão enfileiradas fique abaixo de um limite específico antes do início da operação. Definir esse membro indica que o ICD não requer espera. O limite padrão para o número de superfícies de inversão na fila é três.
Definir esse membro é equivalente a definir o quinto bit do membro Value de 32 bits (0x00000010).
FlipRestart
Um valor UINT que especifica se uma nova superfície deve ser reiniciada.
Definir esse membro é equivalente a definir o sexto bit do membro Value de 32 bits (0x00000020).
DstRectValid
Um valor UINT que especifica se o bitblt usa uma área retangular de destino.
Definir esse membro é equivalente a definir o sétimo bit do membro Value de 32 bits (0x00000040).
SrcRectValid
Um valor UINT que especifica se o bitblt usa uma área retangular de origem.
Definir esse membro é equivalente a definir o oitavo bit do membro Value de 32 bits (0x00000080).
RestrictVidPnSource
Um valor UINT que especifica se o bitblt deve ser restringido. Se o membro hWindow for NULL, o membro VidPnSourceId da estrutura D3DKMT_PRESENT indicar para qual saída o bitblt de tela inteira será direcionado; se hWindow não for NULL, VidPnSourceId indicará a qual saída restringir o bitblt em janela.
Definir esse membro é equivalente a definir o nono bit do membro Value de 32 bits (0x00000100).
SrcColorKey
Um valor UINT que especifica se a chave de cor de origem deve ser executada usando o valor no membro Color da estrutura D3DKMT_PRESENT . Ou seja, qualquer pixel na superfície de origem que corresponda à chave de cor não deve ser copiado para a superfície de destino e todos os pixels de origem que não correspondem à chave de cor devem ser copiados.
Definir esse membro é equivalente a definir o décimo bit do membro Value de 32 bits (0x00000200).
DstColorKey
Um valor UINT que especifica se a chave de cor de destino deve ser executada usando o valor no membro Color de D3DKMT_PRESENT. Ou seja, qualquer pixel na superfície de destino que corresponda à chave de cor deve ser substituído pelo pixel correspondente da superfície de origem e todos os pixels de destino que não correspondem à chave de cor não devem ser substituídos.
Definir esse membro é equivalente a definir o décimo primeiro bit do membro Value de 32 bits (0x00000400).
LinearToSrgb
Um valor UINT que especifica se a origem formatada linearmente deve ser convertida em formato sRGB durante a operação de cópia. O formato sRGB é corrigido por gama. Para obter mais informações sobre o formato sRGB, consulte o site sRGB .
Definir esse membro é equivalente a definir o décimo segundo bit do membro Value de 32 bits (0x00000800).
PresentCountValid
Um valor UINT que especifica se o valor definido no membro PresentCount da estrutura D3DKMT_PRESENT é válido.
Definir esse membro é equivalente a definir o décimo terceiro bit do membro Value de 32 bits (0x00001000).
[in] Rotate
Um valor UINT que especifica se os dados de apresentação devem ser girados para corresponder à orientação atual da tela durante a transferência de bloco de bits da apresentação (bitblt). A orientação atual da tela é definida no membro Rotation de uma estrutura D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION , que é definida no membro ContentTransformation da estrutura D3DKMDT_VIDPN_PRESENT_PATH para o caminho presente do vídeo.
O driver de miniporto de exibição deverá girar os dados somente se o sinalizador Girar campo de bits estiver definido. Mesmo que o driver determine que a orientação atual da tela é girada dos dados da apresentação e Girar não estiver definida, o driver não deve girar os dados.
Definir esse membro é equivalente a definir o décimo quarto bit do membro Value de 32 bits (0x00002000).
PresentToBitmap
Um valor UINT que especifica se deve ser apresentado a um bitmap.
Definir esse membro é equivalente a definir o décimo quinto bit do membro Value de 32 bits (0x00004000).
Com suporte a partir do Windows 7.
RedirectedFlip
Um valor UINT que especifica se é necessário redirecionar uma inversão para uma nova superfície.
Definir esse membro é equivalente a definir o décimo sexto bit do membro Value de 32 bits (0x00008000).
Com suporte a partir do Windows 7.
RedirectedBlt
Um valor UINT que especifica se é necessário redirecionar um bitblt para uma nova superfície.
Definir esse membro é equivalente a definir o décimo sétimo bit do membro Value de 32 bits (0x00010000).
Com suporte a partir do Windows 7.
FlipStereo
Especifica se o driver deve inverter as imagens esquerda e direita de uma alocação estéreo.
Se o membro FlipOnNextVSync da estrutura DXGK_SETVIDPNSOURCEADDRESS_FLAGS estiver definido, o driver deverá concluir a inversão para a imagem à esquerda no próximo VSync e, em seguida, concluir a inversão para a imagem à direita no VSync a seguir.
Se o membro FlipImmediate da estrutura DXGK_SETVIDPNSOURCEADDRESS_FLAGS estiver definido, o driver deverá começar imediatamente a verificar a partir da nova alocação. Por exemplo, se o driver estava verificando uma imagem correta, ele deve iniciar a nova verificação do mesmo deslocamento relativo na imagem certa da nova alocação.
Os membros FlipStereo e FlipStereoTemporaryMono não podem ser definidos ao mesmo tempo.
Para obter mais requisitos, consulte a seção Comentários.
Definir esse membro é equivalente a definir o décimo oitavo bit do membro Value de 32 bits (0x00020000).
Com suporte começando com Windows 8.
FlipStereoTemporaryMono
Especifica se o driver deve usar a imagem esquerda de uma alocação estéreo para as partes direita e esquerda de um quadro estéreo. O driver executa a mesma operação presente que com o FlipStereo, exceto que ele deve verificar apenas a partir da imagem esquerda para produzir ambas as imagens de um quadro estéreo.
Esse membro só deverá ser definido se o driver relatar suporte para essa opção no modo de exibição atual definindo o membro Type da estrutura D3DKMDT_VIDPN_SOURCE_MODE como D3DKMDT_RMT_GRAPHICS_STEREO_ADVANCED_SCAN.
Os membros FlipStereo e FlipStereoTemporaryMono não podem ser definidos ao mesmo tempo.
Os membros FlipStereoTemporaryMono e FlipStereoPreferRight não podem ser definidos ao mesmo tempo.
Para obter mais requisitos, consulte a seção Comentários.
Definir esse membro é equivalente a definir o décimo nono bit do membro Value de 32 bits (0x00040000).
Com suporte começando com Windows 8.
FlipStereoPreferRight
Especifica que, quando o driver clona uma alocação primária estéreo para um monitor mono, ele deve usar a imagem correta.
Os membros FlipStereoTemporaryMono e FlipStereoPreferRight não podem ser definidos ao mesmo tempo.
Para obter mais requisitos, consulte a seção Comentários.
Definir esse membro é equivalente a definir o vigésimo bit do membro Value de 32 bits (0x00080000).
Com suporte começando com Windows 8.
BltStereoUseRight
Especifica que, quando o driver apresenta de uma alocação estéreo para uma alocação mono, ele deve usar a imagem correta. Se não estiver definido, o driver deverá usar a imagem à esquerda.
Definir esse membro é equivalente a definir o bit 201 do membro Value de 32 bits (0x00100000).
Com suporte começando com Windows 8.
PresentHistoryTokenOnly
Especifica que o driver deve enviar apenas um token de histórico presente.
Um token de histórico atual é um pacote de dados que o aplicativo de renderização envia para informar ao DWM (Gerenciador de Janelas da Área de Trabalho) que a renderização está concluída e que o buffer de back da cadeia de troca está pronto para ser apresentado.
Definir esse membro é equivalente a definir o bit de vinte segundos do membro Value de 32 bits (0x00200000).
Com suporte começando com Windows 8.
PresentRegionsValid
Especifica que o D3DKMT_PRESENT. o membro pPresentRegions é um ponteiro válido (não NULL).
Definir esse membro é equivalente a definir o 23º bit do membro Value de 32 bits (0x00400000).
Com suporte começando com Windows 8.
PresentDDA
Esse membro é reservado e deve ser definido como zero.
Definir esse membro é equivalente a definir o 24º bit do membro Value de 32 bits (0x00800000).
Com suporte começando com Windows 8.
ProtectedContentBlankedOut
Esse membro é reservado e deve ser definido como zero.
Definir esse membro é equivalente a definir o 25º bit do membro Value de 32 bits (0x01000000).
Com suporte começando com Windows 8.
RemoteSession
Especifica que a operação atual é direcionada para uma sessão remota.
Definir esse membro é equivalente a definir o vigésimo sexto bit do membro Value de 32 bits (0x02000000).
Com suporte começando com Windows 8.
CrossAdapter
O adaptador cruzado.
DurationValid
Indica se a duração é válida.
PresentIndirect
Apresentar indireto.
PresentHMD
Reserved
Com suporte começando com Windows 8.
Esse membro é reservado e deve ser definido como zero. Definir esse membro como zero é equivalente a definir os 9 bits restantes (0xFF800000) do membro Value de 32 bits como zeros.
Value
Um valor de 32 bits que identifica como executar a operação atual.
Comentários
Se qualquer um dos membros FlipStereo, FlipStereoTemporaryMono ou FlipStereoPreferRight estiver definido, essas condições se aplicarão:
- O membro hAllocation da estrutura DXGKARG_SETVIDPNSOURCEADDRESS deve apontar para uma alocação criada com o membro Stereo definido no membro Flags da estrutura D3DKMT_DISPLAYMODE .
- Os membros PrimarySegment e PrimaryAddress de DXGKARG_SETVIDPNSOURCEADDRESS devem apontar para o endereço físico inicial da alocação.
- O driver deve respeitar as configurações dos membros FlipImmediate e FlipOnNextVSync da estrutura DXGK_SETVIDPNSOURCEADDRESS_FLAGS .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows Vista. |
Cabeçalho | d3dkmthk.h (inclua D3dkmthk.h) |