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。

注解

GetDisplayModeList1GetDisplayModeList 更新为返回 DXGI_MODE_DESC1 结构的列表,这些结构是更新后的模式说明。 GetDisplayModeList 的行为就像调用 GetDisplayModeList1 一样,因为 GetDisplayModeList 可以返回 DXGI_ENUM_MODES指定的所有模式,包括立体声模式。 但是, GetDisplayModeList 返回 DXGI_MODE_DESC 结构的列表,这些结构是以前的模式说明,并不指示立体声模式。

GetDisplayModeList1 方法不枚举立体声模式,除非在 Flags 参数中指定DXGI_ENUM_MODES_STEREO标志。 如果指定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
Library DXGI.lib

另请参阅

IDXGIOutput1