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

另請參閱

IDXGIOutput