Compatibilidad con la rotación de Path-Independent
A partir de Windows 8.1 Update, el sistema operativo admite la clonación de pantallas verticales primero en pantallas horizontales con la mayor resolución posible. El controlador de minipuerto de pantalla debe establecer los valores de desplazamiento adecuados en la estructura de D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT para la ruta de acceso de clonación principal y la ruta de clonación secundaria, como se describe en Compatibilidad con la rotación en un controlador de miniporte de pantalla.
Estas interfaces de controlador de dispositivo (DDIs) son nuevas en Windows 8.1 Update:
- D3DKMDT_VPPR_GET_CONTENT_ROTATION
- D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART
- D3DKMDT_VPPR_GET_OFFSET_ROTATION
Estas DDIs se actualizan en Windows 8.1 Update:
Clonación de un dispositivo vertical en primer lugar
Cuando se solicita a un controlador de un dispositivo vertical primero clonar en un monitor horizontal, debe notificar resoluciones en modo de origen (x,y) que coincidan con las resoluciones de la ruta de acceso de clonación principal. La ruta de acceso de clonación secundaria podría admitir valores de desplazamiento de 90 y 270 grados (D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Offset90 o . Offset270 son TRUE). Por lo tanto, cuando un VidPN se confirma con un valor de enumeración D3DKMDT_VIDPN_PRESENT_PATH_ROTATION que indica un desplazamiento de 90 o 270 grados, esto significa que las resoluciones (x,y) se voltean en esta ruta de acceso determinada.
De forma predeterminada, el sistema operativo elige la ruta de acceso de clonación secundaria para que sea el panel de presentación interno. En caso de que el panel interno sea vertical en primer lugar, el sistema operativo espera D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Desplazamiento270 que se va a establecer en esta ruta de acceso para mostrar en el panel de presentación interno en modo horizontal. En el caso de un monitor externo con prioridad horizontal en la ruta de acceso de clonación secundaria, el sistema operativo espera que el controlador admita D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Offset90, aunque es probable que sea un escenario poco frecuente.
Escenarios de clonación de ejemplo
Este es un escenario típico en el que un dispositivo con una resolución nativa de 800 (ancho) x 1280 píxeles (alto) está conectado en modo de clonación a un televisor con una altura de 1080 píxeles. El controlador notificaría esta información al sistema operativo:
modo de origen
1280 x 800
Modo de destino de TV
1920 x 1080 (escala conservado de relación de aspecto)
modo de destino del dispositivo
800 x 1280 (escalado de identidades)
ruta de acceso de clonación principal (TV)
el controlador solo admite D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Desplazamiento0, así como compatibilidad con la rotación normal
ruta de acceso de clonación secundaria (dispositivo)
el controlador solo admite D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Desplazamiento270, así como compatibilidad con rotación normal
La llamada a la función DxgkDdiCommitVidPn devuelve con esta configuración de ruta de acceso de la enumeración D3DKMDT_VIDPN_PRESENT_PATH_ROTATION :
ruta de acceso de clonación principal (TV)
D3DKMDT_VPPR_IDENTITY
ruta de acceso de clonación secundaria (dispositivo)
D3DKMDT_VPPR_IDENTITY_OFFSET270
El sistema operativo espera que el controlador gire el contenido proporcionado 270 grados.
Si, en el cuadro desplegable Orientación del panel de control Mostrar, el usuario elige la opción Horizontal (volteado), la llamada a la función DxgkDdiCommitVidPn devuelve con esta configuración de ruta de acceso de la enumeración D3DKMDT_VIDPN_PRESENT_PATH_ROTATION:
ruta de acceso de clonación principal (TV)
D3DKMDT_VPPR_ROTATE180
ruta de acceso de clonación secundaria (dispositivo)
D3DKMDT_VPPR_ROTATE180_OFFSET270
Si el Administrador de ventanas de escritorio (DWM) ya ha girado el contenido 180 grados, el controlador todavía debe girarlo otros 270 grados en la ruta de clonación secundaria. De lo contrario, el controlador debe girar el contenido 180 grados para el televisor y 90 grados para el dispositivo. Tenga en cuenta que para girar el contenido, el controlador debe establecer el miembro Rotate de la estructura DXGK_PRESENTFLAGS .