Bagikan melalui


Mendukung Rotasi Path-Independent

Dimulai dengan Windows 8.1 Update, sistem operasi mendukung kloning tampilan portrait-first pada tampilan lanskap-pertama dengan resolusi terbesar yang mungkin. Driver miniport tampilan harus mengatur nilai offset yang tepat dalam struktur D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT untuk jalur klon utama dan jalur klon sekunder, seperti yang dijelaskan dalam Mendukung Rotasi dalam Driver Miniport Tampilan.

Antarmuka driver perangkat (DDI) ini baru dalam Windows 8.1 Update:

  • D3DKMDT_VPPR_GET_CONTENT_ROTATION
  • D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART
  • D3DKMDT_VPPR_GET_OFFSET_ROTATION

DDI ini diperbarui dalam Windows 8.1 Update:

Mengkloning perangkat portrait-first

Ketika driver perangkat portrait-first diminta untuk mengkloning ke monitor yang mengutamakan lanskap, perangkat harus melaporkan resolusi mode sumber (x,y) yang cocok dengan resolusi di jalur kloning utama. Jalur klon sekunder kemudian dapat mendukung nilai offset 90 dan 270 derajat (D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Offset90 atau . Offset270adalah TRUE). Jadi, ketika VidPN diterapkan dengan nilai enumerasi D3DKMDT_VIDPN_PRESENT_PATH_ROTATION yang menunjukkan offset 90 atau 270 derajat, ini berarti bahwa resolusi (x,y) dibalik di jalur khusus ini.

Secara default, sistem operasi memilih jalur klon sekunder untuk menjadi panel tampilan internal. Jika panel internal adalah portrait-first, sistem operasi mengharapkan D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Offset270 akan diatur pada jalur ini untuk ditampilkan pada panel tampilan internal dalam mode lanskap. Dalam kasus monitor eksternal lanskap-pertama di jalur kloning sekunder, sistem operasi mengharapkan driver untuk mendukung D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Offset90, meskipun ini cenderung menjadi skenario langka.

Contoh skenario kloning

Berikut adalah skenario umum di mana perangkat portrait-first dengan resolusi asli 800 (lebar) x 1280 piksel (tinggi) terhubung dalam mode kloning ke TV pertama lanskap dengan tinggi 1080 piksel. Driver akan melaporkan info ini ke sistem operasi:

mode sumber
1280 x 800

Mode target TV
1920 x 1080 (penskalan yang dipertahankan rasio aspek)

mode target perangkat
800 x 1280 (penskalakan identitas)

jalur klon primer (TV)
driver hanya mendukung D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Offset0, serta dukungan rotasi normal

jalur klon sekunder (perangkat)
driver hanya mendukung D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Offset270, serta dukungan rotasi normal

Panggilan ke fungsi DxgkDdiCommitVidPn kemudian kembali dengan pengaturan jalur ini dari enumerasi D3DKMDT_VIDPN_PRESENT_PATH_ROTATION :

jalur klon primer (TV)
D3DKMDT_VPPR_IDENTITY

jalur klon sekunder (perangkat)
D3DKMDT_VPPR_IDENTITY_OFFSET270

Sistem operasi mengharapkan driver memutar konten yang disediakan 270 derajat.

Jika, dalam kotak drop-down Orientasi panel kontrol Tampilan, pengguna memilih opsi Lanskap (dibalik), panggilan ke fungsi DxgkDdiCommitVidPn kembali dengan pengaturan jalur ini dari enumerasi D3DKMDT_VIDPN_PRESENT_PATH_ROTATION:

jalur klon primer (TV)
D3DKMDT_VPPR_ROTATE180

jalur klon sekunder (perangkat)
D3DKMDT_VPPR_ROTATE180_OFFSET270

Jika Desktop Window Manager (DWM) telah memutar konten 180 derajat, driver masih harus memutarnya 270 derajat lagi di jalur klon sekunder. Jika tidak, driver harus memutar konten 180 derajat untuk TV dan 90 derajat untuk perangkat. Perhatikan bahwa untuk memutar konten, driver harus mengatur anggota Putar struktur DXGK_PRESENTFLAGS .