Поделиться через


Метод 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
Header dxgi.h
Библиотека DXGI.lib

См. также раздел

IDXGIOutput