Partilhar via


Suporte à rotação em um driver de miniporto de exibição

A função DxgkDdiEnumVidPnCofuncModality do driver de miniporta de exibição chama a função pfnUpdatePathSupportInfo para relatar o suporte de rotação para cada caminho em uma topologia VidPN (rede presente em vídeo). Para obter mais informações sobre o suporte à rotação de relatórios, consulte Enumerando modos de origem e de destino VidPN cofuncionais.

O subsistema de kernel de gráficos do Microsoft DirectX usa dimensões de superfície não giradas para criar a superfície primária compartilhada. Para notificar um driver de miniporto de exibição para girar a superfície, o subsistema de kernel de elementos gráficos DirectX especifica valores de tipo D3DKMDT_VIDPN_PRESENT_PATH_ROTATION no membro Rotation da estrutura D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION especificada no membro ContentTransformation da estrutura D3DKMDT_VIDPN_PRESENT_PATH em chamadas para dxgkDdiCommitVidPn e DxgkDdiUpdateActiveVidPnPresentPath do driver de miniport Funções.

Nota Todos os graus de rotação são definidos na direção no sentido anti-horário, o que é consistente com a forma como o GDI define a rotação.

Quando o subsistema DirectX notifica o driver de miniporto de exibição para girar a superfície, o driver deve girar os dados da superfície somente se o sinalizador de campo de bit Girar foi definido no membro Flags da estrutura DXGKARG_PRESENT para a qual o parâmetro pPresent aponta em uma chamada para a função DxgkDdiPresent do driver. Mesmo que o driver determine que a orientação atual da tela é girada dos dados da apresentação e Girar não foi definida, o driver não deve girar os dados.

Comportamento do modo clone

O modo clone é um modo no qual uma fonte de vídeo presente se conecta a vários destinos de vídeo presentes por meio de vários caminhos em uma rede de vídeo presente. (Para obter mais informações sobre as redes presentes em vídeo, confira Vários Monitores e Vídeos Apresentar Redes.)

Um driver de miniporto de exibição manipula a rotação de forma diferente se ele opera no modo clone porque cada destino pode exigir uma rotação diferente. O sistema operacional, várias versões de runtimes do Microsoft DirectX e clientes do modo de usuário detectam apenas a orientação do destino do vídeo primário presente. Portanto, o conteúdo na fonte presente do vídeo sempre corresponderá à orientação do destino do vídeo primário presente.

A tabela a seguir mostra como um driver de miniporto de exibição se comporta no modo clone para todas as situações relevantes. A configuração do sinalizador Girar é a configuração do campo de bits Girar no membro Flags da estrutura DXGKARG_PRESENT .

Destino primário Destino secundário Girar sinalizador Comportamento do driver

Não girado

Não girado

Não definido

O driver não executa nenhuma rotação.

Não girado

Girado

Não definido

O driver gira o destino secundário mesmo que o sinalizador Girar não esteja definido.

Girado

Não girado

Definir

O driver gira o destino primário, mas não o destino secundário.

Girado

Não girado

Não definido

Como Girar não está definido, o driver não gira o destino primário. Como o destino secundário não corresponde à orientação do conteúdo na origem, o driver deve girar o destino secundário.

Essa situação ocorre quando o cliente tem reconhecimento de rotação e já orientou corretamente o conteúdo da origem. Portanto, o sistema operacional não define Girar.

Girado

Girado

Definir

O driver gira os destinos primário e secundário.

Girado

Girado

Não definido

O cliente com reconhecimento de rotação já orientou corretamente o conteúdo da origem. Portanto, nenhuma rotação adicional é necessária.

Requisitos de modo de clonagem começando com Windows 8.1 Update

Começando com Windows 8.1 Update, os drivers devem atender a esses requisitos. Se a assinatura de teste estiver habilitada, ocorrerá uma verificação de bugs do sistema se um driver não atender a esses requisitos.

Caminho do clone primário
Definição: O caminho que inclui o monitor de destino que duplica a exibição de origem, por exemplo, um monitor externo que duplica a exibição em um computador laptop.

Exigência: No caminho do clone primário, o driver deve definir Offset0 como TRUE e os outros três valores de deslocamento em D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT como FALSE.

No caso de uma exibição de origem retrato-primeiro, o caminho do clone primário não é deslocado rotativamente. Isso significa que o caminho de clone primário sempre tem um deslocamento de zero (D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Offset0 é TRUE) e o DWM (Gerenciador de Janelas da Área de Trabalho) gira seu conteúdo com antecedência para corresponder à orientação adequada.

O caminho do clone primário determina a taxa de atualização do monitor para todos os destinos de clone primário e secundário.

Caminho de clone secundário
Definição: O caminho que inclui qualquer monitor de destino adicional, não parte do caminho de clone primário, que também duplica a exibição de origem.

Exigência: No caminho de clone secundário, o driver deve definir pelo menos um dos quatro valores de deslocamento em D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT como TRUE. Se o driver não der suporte à rotação independente de caminho, ele deverá definir Offset0 como TRUE em todos os caminhos de clone secundários.

Aqui estão dois exemplos de configurações que o driver deve fazer se ele dá suporte à rotação independente de caminho:

Exemplo de paisagem
Se a exibição de origem e o destino no caminho de clone secundário forem monitores paisagísticos, no caminho de clone secundário, o driver definirá D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Deslocamento0 para TRUE e os outros três valores de deslocamento em D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT para FALSE. Como alternativa, nesse caso, no caminho de clone secundário, o driver definiria Offset0 e Offset180 como TRUE e os outros valores de deslocamento como FALSE.

Exemplo de retrato primeiro
Se a exibição de origem for um dispositivo de primeiro retrato e se conectar a um monitor externo de paisagem, no caminho de clone secundário, o driver definirá Offset270 ou Offset90 como TRUE.

Para obter mais informações, consulte Suporte Path-Independent Rotação.