以身歷聲轉譯並通知立體狀態
除非作業系統指出它啟用立體立體 3D 顯示行為,否則應用程式無法以立體呈現。 應用程式會根據視窗或全螢幕來判斷是否以不同方式呈現立體 3D。
視窗化應用程式會呼叫 IDXGIFactory2::IsWindowedStereoEnabled 方法,以判斷是否要在身歷聲中轉譯。 全螢幕應用程式會呼叫 IDXGIOutput1::GetDisplayModeList1 方法,然後判斷任何傳回的顯示模式是否支援以立體方式呈現。 除非您在Flags參數中指定DXGI_ENUM_MODES_STEREO旗標,否則 GetDisplayModeList1方法不會列舉立體模式。 支援立體的視窗或全螢幕應用程式會先根據 IDXGIFactory2::IsWindowedStereoEnabled 或 IDXGIOutput1::GetDisplayModeList1 方法的呼叫,決定以立體呈現,然後註冊進行立體狀態變更的通知。 因為應用程式無法依賴通知來指出立體 3D 顯示行為的目前狀態,所以收到通知事件或視窗訊息時,它必須再次呼叫 IDXGIFactory2::IsWindowedStereoEnabled 或 IDXGIOutput1::GetDisplayModeList1 ,以判斷作業系統立體立體 3D 顯示行為的目前狀態。
如果您想要以身歷聲轉譯,您必須註冊立體通知,以瞭解使用者何時關閉或開啟立體行為。 應用程式可以註冊,以透過訊息通知立體立體 3D 狀態變更,或透過事件訊號通知。 若要註冊以接收有關立體狀態變更之視窗的通知訊息,應用程式會呼叫 IDXGIFactory2::RegisterStereoStatusWindow 方法。 若要註冊以透過事件訊號接收立體狀態變更的通知,應用程式會呼叫 IDXGIFactory2::RegisterStereoStatusEvent 方法。 這兩種方法都會傳回應用程式可用來取消註冊通知的索引鍵值指標。 若要取消註冊通知,應用程式會將此金鑰值傳遞至 IDXGIFactory2::UnregisterStereoStatus 方法。
立體狀態可以包含下列元素:
使用者設定。
Windows 使用者可以在主控台的 [變更顯示設定] 中啟用或停用立體顯示,並啟用立體立體 3D 選項。
電腦功能和設定,包括圖形介面卡、圖形驅動程式和監視設定。
Direct3D 11.1 簡單立體 3D 範例示範如何新增立體立體 3D 效果,以及如何回應系統立體變更。
相關主題