支援Path-Independent旋轉

從Windows 8.1 更新版開始,作業系統支援在橫向優先顯示器上複製直向優先顯示器,且解析度最高。 顯示迷你埠驅動程式必須在主要複製路徑次要複製路徑的D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT結構中設定適當的位移值,如支援顯示迷你埠驅動程式中的旋轉中所述。

這些設備磁碟機介面 (DIS) 是Windows 8.1 更新版的新功能:

  • D3DKMDT_VPPR_GET_CONTENT_ROTATION
  • D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART
  • D3DKMDT_VPPR_GET_OFFSET_ROTATION

這些 DIS 會在 Windows 8.1 更新版中更新:

複製直向優先裝置

當直向優先裝置的驅動程式要求複製到橫向優先監視器時,它應該回報來源模式, (xy) 解析度符合主要複製路徑中的解析度。 次要複製路徑接著可以支援 90 度和 270 度位移值 , (D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORTOffset90 或 。Offset270TRUE) 。 因此,當 VidPN 使用指出 90 度或 270 度位移 的 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION 列舉值進行認可時,這表示 (xy) 解析度會在這個特定路徑中翻轉。

根據預設,作業系統會選擇次要複製路徑做為內部顯示面板。 在內部面板為直向優先的情況下,作業系統預期 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT。要在此路徑上設定Offset270 ,以便在橫向模式的內部顯示面板上顯示。 如果是次要複製路徑中的橫向優先外部監視器,作業系統預期驅動程式支援 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORTOffset90,雖然這可能是罕見的案例。

範例複製案例

以下是一般案例,其中原生解析度為 800 (寬度的直向優先裝置,) x 1280 圖元 (高度) 連線到高度為 1080 圖元的橫向優先電視。 驅動程式會將此資訊回報給作業系統:

來源模式
1280 x 800

電視目標模式
1920 x 1080 (外觀比例保留縮放比例)

裝置目標模式
800 x 1280 (身分識別調整)

電視 (主要複製路徑)
驅動程式僅支援 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORTOffset0,以及一般旋轉支援

次要複製路徑 (裝置)
驅動程式僅支援 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORTOffset270以及一般旋轉支援

DxgkDdiCommitVidPn函式的呼叫接著會從D3DKMDT_VIDPN_PRESENT_PATH_ROTATION列舉傳回這些路徑設定:

電視 (主要複製路徑)
D3DKMDT_VPPR_IDENTITY

次要複製路徑 (裝置)
D3DKMDT_VPPR_IDENTITY_OFFSET270

作業系統預期驅動程式會旋轉提供的內容 270 度。

如果在 [顯示 控制台 的方向 ] 下拉式方塊中,使用者選擇 [ 橫向 (翻轉) ] 選項, 則 DxgkDdiCommitVidPn 函式的呼叫會從 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION 列舉傳回這些路徑設定:

電視 (主要複製路徑)
D3DKMDT_VPPR_ROTATE180

次要複製路徑 (裝置)
D3DKMDT_VPPR_ROTATE180_OFFSET270

如果桌面視窗管理員 (DWM) 已經旋轉 180 度的內容,驅動程式仍然必須在次要複製路徑中旋轉另一個 270 度。 否則,驅動程式必須旋轉電視的內容 180 度,裝置必須旋轉 90 度。 請注意,若要旋轉內容,驅動程式必須設定DXGK_PRESENTFLAGS結構的Rotate成員。