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


Метод 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

Сочетание DXGI_ENUM_MODES типизированных значений, объединенных с помощью побитовой операции OR. Результирующее значение задает параметры для включения режимов отображения. Необходимо указать 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 8 и обновление платформы для Windows 7 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2012 и обновление платформы для Windows Server 2008 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header dxgi1_2.h
Библиотека DXGI.lib

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

IDXGIOutput1