Condividi tramite


funzione D3DKMDT_VPPR_GET_CONTENT_ROTATION (d3dkmdt.h)

Funzione helper che estrae la rotazione combinata visualizzata dall'orientamento di visualizzazione predefinito da un determinato valore dell'enumerazione D3DKMDT_VIDPN_PRESENT_PATH_ROTATION . Questo valore è effettivamente la somma dell'angolo di offset e l'angolo in cui Desktop Window Manager (DWM) ha già ruotato il contenuto del percorso clone primario. Solo i driver che supportano la rotazione indipendente dal percorso (DXGKDDI_INTERFACE_VERSION = DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION >) devono chiamare questa funzione.

Sintassi

D3DKMDT_VIDPN_PRESENT_PATH_ROTATION D3DKMDT_VPPR_GET_CONTENT_ROTATION(
  D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation
);

Parametri

Rotation

In input, un valore dell'enumerazione D3DKMDT_VIDPN_PRESENT_PATH_ROTATION .

In output, un valore compreso tra 1 e 4, inclusivo, che corrisponde alla parte OFFSET dei valori costanti D3DKMDT_VIDPN_PRESENT_PATH_ROTATION . Un valore di output pari a 1 (identità) rappresenta 0 gradi di rotazione totale, 2 rappresenta 90 gradi e così via. Un valore di output pari a 0 indica che il percorso VidPN non viene inizializzato.

Il valore di output di Rotation è la somma dei valori di output delle funzioni D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART e D3DKMDT_VPPR_GET_OFFSET_ROTATION meno 1.

Valore restituito

Il valore restituito corrisponde agli angoli di rotazione e offset come indicato di seguito:

Valore di enumerazione di input Costante di enumerazione di input Rotazione + offset, in gradi Valore di rotazione dell'output
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

Commenti

Questa funzione è dichiarata inline in D3dkmdt.h come:

__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 il contenuto presentato deve essere ruotato dal driver, l'output di questa funzione rappresenta la rotazione totale (il membro Ruota della struttura DXGK_PRESENTFLAGS) che il driver deve applicare ai pixel forniti nell'operazione DxgkDdiPresent. Per altre informazioni, vedere Supporto Path-Independent rotazione.

Ecco un esempio di come questa funzione può fornire al driver le informazioni necessarie per ruotare correttamente il contenuto. Quando un dispositivo verticale è connesso in modalità clone a un monitor orizzontale e l'utente modifica l'orientamento nel pannello di controllo Visualizzazione in Verticale, questo rappresenta l'orientamento predefinito del dispositivo verticale. Pertanto, il driver deve impostare un valore di D3DKMDT_VIDPN_PRESENT_PATH_ROTATION. D3DKMDT_VPPR_ROTATE90_OFFSET270 sul percorso. Questa funzione restituirà quindi un valore di rotazione pari a 1 (identità) per indicare che il contenuto visualizzato nel percorso clone non deve essere ruotato.

Requisiti

Requisito Valore
Client minimo supportato Windows 8.1,DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION
Server minimo supportato Windows Server 2012 R2
Piattaforma di destinazione Desktop
Intestazione d3dkmdt.h

Vedi anche

D3DKMDT_VIDPN_PRESENT_PATH_ROTATION

D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART

D3DKMDT_VPPR_GET_OFFSET_ROTATION

DXGK_PRESENTFLAGS

DxgkDdiPresent