Bagikan melalui


D3DKMDT_VPPR_GET_CONTENT_ROTATION (d3dkmdt.h)

Fungsi pembantu yang mengekstrak rotasi gabungan yang dilihat pengguna dari orientasi tampilan default dari nilai tertentu dari enumerasi D3DKMDT_VIDPN_PRESENT_PATH_ROTATION . Nilai ini secara efektif adalah jumlah sudut offset dan sudut bahwa Desktop Window Manager (DWM) telah memutar konten jalur klon utama. Hanya driver yang mendukung rotasi independen jalur (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION) yang harus memanggil fungsi ini.

Sintaks

D3DKMDT_VIDPN_PRESENT_PATH_ROTATION D3DKMDT_VPPR_GET_CONTENT_ROTATION(
  D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation
);

Parameter

Rotation

Pada input, nilai dari enumerasi D3DKMDT_VIDPN_PRESENT_PATH_ROTATION .

Pada output, nilai antara 1 dan 4, inklusif, yang sesuai dengan bagian OFFSET dari nilai konstanta D3DKMDT_VIDPN_PRESENT_PATH_ROTATION . Nilai output 1 (identitas) mewakili 0 derajat dari total rotasi, 2 mewakili 90 derajat, dan sebagainya. Nilai output 0 menunjukkan bahwa jalur VidPN tidak diinisialisasi.

Nilai output Rotasi adalah jumlah nilai output dari fungsi D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART dan D3DKMDT_VPPR_GET_OFFSET_ROTATION dikurangi 1.

Nilai kembali

Nilai yang dikembalikan sesuai dengan sudut rotasi dan offset sebagai berikut:

Nilai enumerasi input Konstanta enumerasi input Rotasi + offset, dalam derajat Nilai Rotasi 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

Keterangan

Fungsi ini dinyatakan sebaris dalam D3dkmdt.h sebagai:

__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;
}

Jika konten yang disajikan harus diputar oleh driver, output fungsi ini mewakili rotasi total (anggota Putar struktur DXGK_PRESENTFLAGS ) yang perlu diterapkan driver ke piksel yang disediakan dalam operasi DxgkDdiPresent . Untuk informasi selengkapnya, lihat Mendukung Rotasi Path-Independent.

Berikut adalah contoh bagaimana fungsi ini dapat memberi driver Anda info yang diperlukan untuk memutar konten dengan benar. Ketika perangkat portrait-first terhubung dalam mode kloning ke monitor yang mengutamakan lanskap dan pengguna mengubah Orientasi di panel Kontrol tampilan menjadi Potret, ini mewakili orientasi default perangkat yang mengutamakan potret. Oleh karena itu driver harus menetapkan nilai D3DKMDT_VIDPN_PRESENT_PATH_ROTATION. D3DKMDT_VPPR_ROTATE90_OFFSET270 di jalur. Fungsi ini kemudian akan mengembalikan nilai Rotasi 1 (identitas) untuk menunjukkan bahwa konten yang ditampilkan pada jalur kloning tidak akan diputar.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8.1,DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION
Server minimum yang didukung Windows Server 2012 R2
Target Platform Desktop
Header d3dkmdt.h

Lihat juga

D3DKMDT_VIDPN_PRESENT_PATH_ROTATION

D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART

D3DKMDT_VPPR_GET_OFFSET_ROTATION

DXGK_PRESENTFLAGS

DxgkDdiPresent