Compartilhar via


função D3DKMDT_VPPR_GET_CONTENT_ROTATION (d3dkmdt.h)

Uma função auxiliar que extrai a rotação combinada que o usuário vê da orientação de exibição padrão de um determinado valor da enumeração D3DKMDT_VIDPN_PRESENT_PATH_ROTATION . Esse valor é efetivamente a soma do ângulo de deslocamento e o ângulo que o DWM (Gerenciador de Janelas da Área de Trabalho) já girou o conteúdo do caminho de clone primário. Somente os drivers que dão suporte à rotação independente de caminho (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION) devem chamar essa função.

Sintaxe

D3DKMDT_VIDPN_PRESENT_PATH_ROTATION D3DKMDT_VPPR_GET_CONTENT_ROTATION(
  D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation
);

Parâmetros

Rotation

Na entrada, um valor da enumeração D3DKMDT_VIDPN_PRESENT_PATH_ROTATION .

Na saída, um valor entre 1 e 4, inclusive, que corresponde à parte OFFSET dos valores constantes D3DKMDT_VIDPN_PRESENT_PATH_ROTATION . Um valor de saída de 1 (identidade) representa 0 graus de rotação total, 2 representa 90 graus e assim por diante. Um valor de saída de 0 indica que o caminho VidPN não foi inicializado.

O valor de saída de Rotation é a soma dos valores de saída das funções D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART e D3DKMDT_VPPR_GET_OFFSET_ROTATION menos 1.

Retornar valor

O valor retornado corresponde aos ângulos de rotação e deslocamento da seguinte maneira:

Valor de enumeração de entrada Constante de enumeração de entrada Rotação + deslocamento, em graus Valor de Rotação de Saída
0 D3DKMDT_VPPR_UNINITIALIZED - 0
1 D3DKMDT_VPPR_IDENTITY 0 1
2 D3DKMDT_VPPR_ROTATE90 90 2
3 D3DKMDT_VPPR_ROTATE180 180 3
4 D3DKMDT_VPPR_ROTATE270 270 4
5 D3DKMDT_VPPR_IDENTITY_OFFSET90 90 2
6 D3DKMDT_VPPR_ROTATE90_OFFSET90 180 3
7 D3DKMDT_VPPR_ROTATE180_OFFSET90 270 4
8 D3DKMDT_VPPR_ROTATE270_OFFSET90 0 1
9 D3DKMDT_VPPR_IDENTITY_OFFSET180 180 3
10 D3DKMDT_VPPR_ROTATE90_OFFSET180 270 4
11 D3DKMDT_VPPR_ROTATE180_OFFSET180 0 1
12 D3DKMDT_VPPR_ROTATE270_OFFSET180 90 2
13 D3DKMDT_VPPR_IDENTITY_OFFSET270 270 4
14 D3DKMDT_VPPR_ROTATE90_OFFSET270 0 1
15 D3DKMDT_VPPR_ROTATE180_OFFSET270 90 2
16 D3DKMDT_VPPR_ROTATE270_OFFSET270 180 3

Comentários

Essa função é declarada embutida em D3dkmdt.h como:

__inline
D3DKMDT_VIDPN_PRESENT_PATH_ROTATION 
    D3DKMDT_VPPR_GET_CONTENT_ROTATION(
        D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation)
{
    if ((Rotation >= D3DKMDT_VPPR_IDENTITY_OFFSET90) &&
        (Rotation <= D3DKMDT_VPPR_ROTATE270_OFFSET270))
    {
        D3DKMDT_VIDPN_PRESENT_PATH_ROTATION ContentPart = 
            D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART(Rotation);
        D3DKMDT_VIDPN_PRESENT_PATH_ROTATION OffsetPart =
            D3DKMDT_VPPR_GET_OFFSET_ROTATION(Rotation);
        Rotation = (D3DKMDT_VIDPN_PRESENT_PATH_ROTATION)(
            (((ContentPart - 1) + (OffsetPart - 1)) % 4) + 1);
    }
    return Rotation;
}

Se o conteúdo que está sendo apresentado precisar ser girado pelo driver, a saída dessa função representará a rotação total (o membro Rotate da estrutura DXGK_PRESENTFLAGS ) que o driver precisa aplicar aos pixels fornecidos na operação DxgkDdiPresent . Para obter mais informações, consulte Suporte à rotação de Path-Independent.

Aqui está um exemplo de como essa função pode fornecer ao driver as informações necessárias para girar corretamente o conteúdo. Quando um dispositivo portrait-first é conectado no modo clone a um monitor de paisagem primeiro e o usuário altera a Orientação no painel de controle De exibição para Retrato, isso representa a orientação padrão do dispositivo retrato-primeiro. Portanto, o driver deve definir um valor de D3DKMDT_VIDPN_PRESENT_PATH_ROTATION. D3DKMDT_VPPR_ROTATE90_OFFSET270 no caminho. Essa função retornará um valor rotation de 1 (identidade) para indicar que o conteúdo exibido no caminho do clone não deve ser girado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8.1,DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION
Servidor mínimo com suporte Windows Server 2012 R2
Plataforma de Destino Área de Trabalho
Cabeçalho d3dkmdt.h

Confira também

D3DKMDT_VIDPN_PRESENT_PATH_ROTATION

D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART

D3DKMDT_VPPR_GET_OFFSET_ROTATION

DXGK_PRESENTFLAGS

DxgkDdiPresent