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 |
Library | DXGI.lib |