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