Condividi tramite


Supporto della rotazione Path-Independent

A partire da Windows 8.1 Update, il sistema operativo supporta la clonazione di visualizzazioni verticali nei primi display orizzontale con la massima risoluzione possibile. Il driver miniport visualizzato deve impostare i valori di offset appropriati nella struttura di D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT per il percorso del clone primario e il percorso di clonazione secondaria, come descritto in Supporto rotazione in un driver Display Miniport.

Queste interfacce del driver di dispositivo (DDI) sono nuove in Windows 8.1 Update:

  • D3DKMDT_VPPR_GET_CONTENT_ROTATION
  • D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART
  • D3DKMDT_VPPR_GET_OFFSET_ROTATION

Questi DDI vengono aggiornati in Windows 8.1 Update:

Clonazione di un dispositivo verticale

Quando un driver di un dispositivo verticale viene richiesto di clonare un monitor orizzontale, deve segnalare risoluzioni in modalità origine (x,y) corrispondenti alle risoluzioni nel percorso di clonazione primaria. Il percorso clone secondario potrebbe quindi supportare valori di offset di 90 e 270 gradi (D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Offset90 o . Offset270 è TRUE. Quindi, quando un valore di enumerazione VidPN viene eseguito con un valore di enumerazione D3DKMDT_VIDPN_PRESENT_PATH_ROTATION che indica un offset di 90 o 270 gradi, ciò significa che le risoluzioni (x,y) vengono capovolte in questo percorso specifico.

Per impostazione predefinita, il sistema operativo sceglie il percorso del clone secondario per essere il pannello di visualizzazione interno. Nel caso in cui il pannello interno sia verticale, il sistema operativo prevede D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Offset270 da impostare su questo percorso per visualizzare nel pannello di visualizzazione interno in modalità orizzontale. Nel caso di un monitoraggio esterno orizzontale nel percorso del clone secondario, il sistema operativo prevede che il driver supporti D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Offset90, anche se è probabile che si tratta di uno scenario raro.

Scenari di clonazione di esempio

Ecco uno scenario tipico in cui un dispositivo verticale con risoluzione nativa 800 (larghezza) x 1280 pixel (altezza) è connesso in modalità clone a una TV orizzontale con altezza 1080 pixel. Il driver segnala queste informazioni al sistema operativo:

modalità di origine
1280 x 800

Modalità di destinazione TV
1920 x 1080 (ridimensionamento mantenuto in rapporto di aspetto)

modalità di destinazione del dispositivo
800 x 1280 (scalabilità delle identità)

percorso clone primario (TV)
driver supporta solo D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Offset0, nonché supporto di rotazione normale

percorso clone secondario (dispositivo)
driver supporta solo D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Offset270, oltre al supporto di rotazione normale

La chiamata alla funzione DxgkDdiCommitVidPn restituisce quindi con queste impostazioni del percorso dall'enumerazione D3DKMDT_VIDPN_PRESENT_PATH_ROTATION :

percorso clone primario (TV)
D3DKMDT_VPPR_IDENTITY

percorso clone secondario (dispositivo)
D3DKMDT_VPPR_IDENTITY_OFFSET270

Il sistema operativo prevede che il driver ruota il contenuto fornito 270 gradi.

Se, nella casella a discesa Orientamento del pannello di controllo Visualizza, l'utente sceglie l'opzione Orizzontale (capovolto), la chiamata alla funzione DxgkDdiCommitVidPn restituisce con queste impostazioni di percorso dall'enumerazione D3DKMDT_VIDPN_PRESENT_PATH_ROTATION:

percorso clone primario (TV)
D3DKMDT_VPPR_ROTATE180

percorso clone secondario (dispositivo)
D3DKMDT_VPPR_ROTATE180_OFFSET270

Se Desktop Window Manager (DWM) ha già ruotato il contenuto 180 gradi, il driver deve comunque ruotarlo un altro 270 gradi nel percorso clone secondario. In caso contrario, il driver deve ruotare il contenuto di 180 gradi per la TV e 90 gradi per il dispositivo. Si noti che per ruotare il contenuto, il driver deve impostare il membro Ruota della struttura DXGK_PRESENTFLAGS .