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

接收 GetDisplayModeList1pDesc 指向的記憶體區塊中,接收顯示模式數目的變數指標。 將 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

另請參閱

IDXGIOutput1