IDXGIOutput1::GetDisplayModeList1 方法 (dxgi1_2.h)
取得符合所要求格式和其他輸入選項的顯示模式。
語法
HRESULT GetDisplayModeList1(
DXGI_FORMAT EnumFormat,
UINT Flags,
[in, out] UINT *pNumModes,
[out, optional] DXGI_MODE_DESC1 *pDesc
);
參數
EnumFormat
色彩格式的DXGI_FORMAT型別值。
Flags
使用位 OR 運算結合 的DXGI_ENUM_MODES型別值組合。 產生的值會指定要包含之顯示模式的選項。 您必須指定DXGI_ENUM_MODES_SCALING,才能公開需要調整的顯示模式。 預設會列舉不需要縮放比例且直接對應至顯示輸出的置中模式。
[in, out] pNumModes
接收 GetDisplayModeList1 在 pDesc 指向的記憶體區塊中,接收顯示模式數目的變數指標。 將 pDesc 設定為 NULL ,讓 pNumModes 傳回符合格式和選項的顯示模式數目。 否則, pNumModes 會傳回 pDesc 中傳回的顯示模式數目。
[out, optional] pDesc
顯示模式清單的指標;設定為 NULL 以取得顯示模式的數目。
傳回值
傳回 DXGI_ERROR 主題中所述的其中一個錯誤碼。 在呼叫這個方法之後,可用的顯示模式可能會立即變更,在此情況下,如果) 的所有顯示模式沒有足夠的空間, (傳回DXGI_ERROR_MORE_DATA。
備註
GetDisplayModeList1 會從 GetDisplayModeList 更新,以傳回更新模式描述 的DXGI_MODE_DESC1 結構清單。 GetDisplayModeList 的行為就像呼叫 GetDisplayModeList1 一樣,因為 GetDisplayModeList 可以傳回 DXGI_ENUM_MODES所指定的所有模式,包括立體聲模式。 不過, GetDisplayModeList 會傳回 一份DXGI_MODE_DESC 結構清單,這是先前的模式描述,而且不表示立體聲模式。
除非您在 Flags 參數中指定DXGI_ENUM_MODES_STEREO旗標,否則 GetDisplayModeList1 方法不會列舉立體聲模式。 如果您指定DXGI_ENUM_MODES_STEREO,則 pDesc 參數所指向的傳回模式清單中會包含立體聲模式。 換句話說,方法會傳回立體聲和單聲道模式。
一般而言,當您從視窗切換為全螢幕模式時,交換鏈結會自動選擇符合 (或超過) 交換鏈結解析度、色彩深度和重新整理速率的顯示模式。 若要對顯示模式執行更多控制,請使用 GetDisplayModeList1 來輪詢針對監視功能驗證的顯示模式集,或在未針對監視器驗證桌面設定時,符合桌面 (的所有模式) 。
下列範例程式代碼顯示您需要呼叫 GetDisplayModeList1 兩次。 第一次呼叫 GetDisplayModeList1 以取得可用的模式數目,第二次呼叫 GetDisplayModeList1 以傳回模式的描述。
UINT num = 0;
DXGI_FORMAT format = DXGI_FORMAT_R32G32B32A32_FLOAT;
UINT flags = DXGI_ENUM_MODES_INTERLACED;
pOutput->GetDisplayModeList1( format, flags, &num, 0);
...
DXGI_MODE_DESC1 * pDescs = new DXGI_MODE_DESC1[num];
pOutput->GetDisplayModeList1( format, flags, &num, pDescs);
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | 適用於 Windows Server 2008 R2 的 Windows Server 2012 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | dxgi1_2.h |
程式庫 | DXGI.lib |