支援顯示迷你埠驅動程式中的旋轉
顯示迷你埠驅動程式的 DxgkDdiEnumVidPnCofuncModality 函式會呼叫 pfnUpdatePathSupportInfo 函式,以報告影片中每個路徑的旋轉支援, (VidPN) 拓撲。 如需報告輪替支援的詳細資訊,請參閱 列舉 Cofunctional VidPN 來源和目標模式。
Microsoft DirectX 圖形核心子系統會使用非旋轉表面維度來建立共用的主要表面。 若要通知顯示迷你埠驅動程式旋轉表面,DirectX 圖形核心子系統會在呼叫顯示迷你埠驅動程式的 DxgkDdiCommitVidPn 和 DxgkDdiUpdateActiveVidateActiveVidPnPresentPath的ContentTransformation成員中指定D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION結構的RotationD3DKMDT_VIDPN_PRESENT_PATH成員中的D3DKMDT_VIDPN_PRESENT_PATH_ROTATION型別值功能。
注意 所有旋轉度都是以逆時針方向定義,這與 GDI 定義旋轉的方式一致。
當 DirectX 子系統通知顯示迷你埠驅動程式旋轉表面時,只有當旋轉位欄位旗標是在pPresent參數呼叫驅動程式DxgkDdiPresent函式的FlagsDXGKARG_PRESENT成員中設定了 Rotate位欄位旗標時,驅動程式才應該旋轉表面資料。 即使驅動程式判斷螢幕的目前方向是從簡報資料旋轉,但未設定 Rotate ,驅動程式不應該旋轉資料。
複製模式行為
複製模式 是影片簡報來源透過影片簡報網路中多個路徑連接到多個視訊簡報目標的模式。 (如需影片簡報網路的詳細資訊,請參閱 多個監視器和視訊簡報網路。)
如果顯示迷你埠驅動程式在複製模式中運作,則會以不同的方式處理旋轉,因為每個目標可能需要不同的旋轉。 作業系統、各種版本的 Microsoft DirectX 執行時間,以及使用者模式用戶端只會偵測主要影片呈現目標的方向。 因此,影片簡報來源中的內容一律會符合主要影片簡報目標的方向。
下表顯示顯示迷你埠驅動程式在複製模式中如何針對所有相關情況運作。 Rotate旗標的設定是在 DXGKARG_PRESENT 結構的Flags成員中旋轉位欄位的設定。
主要目標 | 次要目標 | 旋轉旗標 | 驅動程式行為 |
---|---|---|---|
未旋轉 |
未旋轉 |
未設定 |
驅動程式不會執行旋轉。 |
未旋轉 |
旋轉 |
未設定 |
即使未設定 Rotate 旗標,驅動程式仍 會輪替 次要目標。 |
旋轉 |
未旋轉 |
集合 |
驅動程式會輪替主要目標,但不會輪替次要目標。 |
旋轉 |
未旋轉 |
未設定 |
因為未設定 Rotate ,所以驅動程式不會旋轉主要目標。 因為次要目標不符合來源中內容的方向,所以驅動程式必須旋轉次要目標。 當用戶端是旋轉感知的,而且它已經正確導向來源的內容時,就會發生這種狀況。 因此,作業系統不會設定 [旋轉]。 |
旋轉 |
旋轉 |
集合 |
驅動程式會輪替主要和次要目標。 |
旋轉 |
旋轉 |
未設定 |
旋轉感知用戶端已正確導向來源的內容。 因此,不需要額外的輪替。 |
從 Windows 8.1 更新版 開始的複製模式需求
從Windows 8.1 更新版開始,驅動程式必須符合這些需求。 如果啟用測試簽署,如果驅動程式無法符合這些需求,就會發生系統錯誤檢查。
主要複製路徑
定義: 包含複製來源顯示器之目標監視器的路徑,例如,複製膝上型電腦顯示器的外部監視器。
要求: 在主要複製路徑中,驅動程式必須將 Offset0 設定為 TRUE ,並將 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT 中的其他 3 個位移值設定為 FALSE。
在直向優先來源顯示的情況下,主要複製路徑不會旋轉位移。 這表示主要複製路徑一律會位移為零 (D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT。Offset0 為 TRUE) ,而桌面視窗管理員 (DWM) 會事先旋轉其內容,以符合適當的方向。
主要複製路徑會決定所有主要和次要複製目標的監視重新整理速率。
次要複製路徑
定義: 包含任何其他目標監視器的路徑,而不是主要複製路徑的一部分,也會複製來源顯示。
要求: 在次要複製路徑中,驅動程式必須將 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT 中至少 4 個位移值的其中一個設定為 TRUE。 如果驅動程式不支援與路徑無關的旋轉,則應該在所有次要複製路徑中將 Offset0 設定為 TRUE 。
如果驅動程式支援與路徑無關的輪替,則應該進行下列兩個設定範例:
橫向優先範例
如果來源顯示和次要複製路徑中的目標都是橫向優先監視器,則驅動程式會在次要複製路徑中設定 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT。Offset0 為 TRUE ,而其他 3 位移值則 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT 為 FALSE。 或者在此情況下,在次要複製路徑中,驅動程式會將 Offset0 和 Offset180 設定為 TRUE ,並將其他位移值設定為 FALSE。
直向優先範例
如果來源顯示器是直向優先裝置,並聯機到橫向優先的外部監視器,則驅動程式會在次要複製路徑中將 Offset270 或 Offset90 設定為 TRUE。
如需詳細資訊,請參閱 支援Path-Independent輪替。