Compartir a través de


función D3DKMDT_VPPR_GET_CONTENT_ROTATION (d3dkmdt.h)

Función auxiliar que extrae la rotación combinada que el usuario ve de la orientación de presentación predeterminada de un valor determinado de la enumeración D3DKMDT_VIDPN_PRESENT_PATH_ROTATION . Este valor es efectivamente la suma del ángulo de desplazamiento y el ángulo que el Administrador de ventanas de escritorio (DWM) ya ha girado el contenido de la ruta de acceso de clonación principal. Solo los controladores que admiten la rotación independiente de la ruta de acceso (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION) deben llamar a esta función.

Sintaxis

D3DKMDT_VIDPN_PRESENT_PATH_ROTATION D3DKMDT_VPPR_GET_CONTENT_ROTATION(
  D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation
);

Parámetros

Rotation

En la entrada, un valor de la enumeración D3DKMDT_VIDPN_PRESENT_PATH_ROTATION .

En la salida, un valor entre 1 y 4, ambos incluidos, que corresponde a la parte OFFSET de los valores constantes de D3DKMDT_VIDPN_PRESENT_PATH_ROTATION . Un valor de salida de 1 (identidad) representa 0 grados de rotación total, 2 representa 90 grados, etc. Un valor de salida de 0 indica que la ruta de acceso vidPN no se inicializa.

El valor de salida de Rotation es la suma de los valores de salida de la D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART y D3DKMDT_VPPR_GET_OFFSET_ROTATION funciones menos 1.

Valor devuelto

El valor devuelto corresponde a los ángulos de rotación y desplazamiento de la siguiente manera:

Valor de enumeración de entrada Constante de enumeración de entrada Rotación y desplazamiento, en grados Valor de rotación de salida
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

Comentarios

Esta función se declara insertada en 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;
}

Si el controlador debe girar el contenido presentado, la salida de esta función representa la rotación total (el miembro Rotate de la estructura DXGK_PRESENTFLAGS ) que el controlador debe aplicar a los píxeles proporcionados en la operación DxgkDdiPresent . Para obtener más información, consulta Compatibilidad con la rotación de Path-Independent.

Este es un ejemplo de cómo esta función puede proporcionar al controlador la información que necesita para rotar correctamente el contenido. Cuando un dispositivo vertical se conecta en modo de clonación a un monitor de primera vista horizontal y el usuario cambia la orientación del panel de control Mostrar a Vertical, esto representa la orientación predeterminada del dispositivo vertical primero. Por lo tanto, el controlador debe establecer un valor de D3DKMDT_VIDPN_PRESENT_PATH_ROTATION. D3DKMDT_VPPR_ROTATE90_OFFSET270 en la ruta de acceso. A continuación, esta función devolverá un valor rotation de 1 (identidad) para indicar que el contenido mostrado en la ruta de acceso de clonación no se va a rotar.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8.1 DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION
Servidor mínimo compatible Windows Server 2012 R2
Plataforma de destino Escritorio
Encabezado d3dkmdt.h

Consulte también

D3DKMDT_VIDPN_PRESENT_PATH_ROTATION

D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART

D3DKMDT_VPPR_GET_OFFSET_ROTATION

DXGK_PRESENTFLAGS

DxgkDdiPresent