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 结构的列表,这些结构是以前的模式说明,并不指示立体声模式。
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 |