IDXGIOutput::GetDisplayModeList 方法 (dxgi.h)
[從 Direct3D 11.1 開始,我們建議不要再使用 GetDisplayModeList 來擷取相符的顯示模式。 請改用支援立體顯示模式的 IDXGIOutput1::GetDisplayModeList1。
取得符合要求之格式和其他輸入選項的顯示模式。
語法
HRESULT GetDisplayModeList(
DXGI_FORMAT EnumFormat,
UINT Flags,
[in, out] UINT *pNumModes,
[out, optional] DXGI_MODE_DESC *pDesc
);
參數
EnumFormat
類型: DXGI_FORMAT
色彩格式 (請參閱 DXGI_FORMAT) 。
Flags
類型: UINT
包含模式的選項 (請參閱 DXGI_ENUM_MODES) 。 必須指定DXGI_ENUM_MODES_SCALING,才能公開需要縮放的顯示模式。 預設會列舉不需要縮放比例且直接對應至顯示輸出的置中模式。
[in, out] pNumModes
類型: UINT*
將 pDesc 設定為 Null ,讓 pNumModes 傳回符合格式和選項的顯示模式數目。 否則, pNumModes 會傳回 pDesc中傳回的顯示模式數目。
[out, optional] pDesc
類型: DXGI_MODE_DESC*
(顯示模式清單的指標,請參閱 DXGI_MODE_DESC) ;設定為 Null 以取得顯示模式的數目。
傳回值
類型: HRESULT
傳回下列其中一個 DXGI_ERROR。 這很罕見,但可能的話,在呼叫此方法之後,可用的顯示模式可能會立即變更,在此情況下 DXGI_ERROR_MORE_DATA,如果所有顯示模式的空間不足,就會傳回 () 。
如果從遠端桌面服務會話呼叫 GetDisplayModeList , (先前稱為終端機服務會話) ,則會傳回DXGI_ERROR_NOT_CURRENTLY_AVAILABLE。
備註
一般而言,從視窗切換為全螢幕模式時,交換鏈結會自動選擇符合 (或超過) 交換鏈結解析度、色彩深度和重新整理速率的顯示模式。 若要對顯示模式執行更多控制,請使用此 API 來輪詢針對監視功能驗證的一組顯示模式,或者,如果桌面設定未針對監視器驗證,) 則符合桌面 (的所有模式。
如前所示,此 API 的設計目的是要呼叫兩次。 首先,取得可用的模式數目,第二個則傳回模式的描述。
UINT num = 0;
DXGI_FORMAT format = DXGI_FORMAT_R32G32B32A32_FLOAT;
UINT flags = DXGI_ENUM_MODES_INTERLACED;
pOutput->GetDisplayModeList( format, flags, &num, 0);
...
DXGI_MODE_DESC * pDescs = new DXGI_MODE_DESC[num];
pOutput->GetDisplayModeList( format, flags, &num, pDescs);
需求
目標平台 | Windows |
標頭 | dxgi.h |
程式庫 | DXGI.lib |