Практическое руководство. Получение режимов отображения адаптера

В этом разделе показано, как использовать инфраструктуру графики Microsoft DirectX (DXGI) для получения допустимых режимов отображения, связанных с адаптером. DirectX 10 и 11 может использовать DXGI для получения допустимых режимов отображения. Зная допустимые режимы отображения, приложение сможет правильно выбрать допустимый полноэкранный режим.

Получение режимов отображения адаптера

  1. Создайте объект IDXGIFactory и используйте его для перечисления доступных адаптеров. Дополнительные сведения см. в разделе Практическое руководство. Перечисление адаптеров.

  2. Вызовите IDXGIAdapter::EnumOutputs, чтобы перечислить выходные данные для каждого адаптера.

    IDXGIOutput* pOutput = NULL; 
    HRESULT hr;
    
    hr = pAdapter->EnumOutputs(0,&pOutput);
    
  3. Вызовите МЕТОД IDXGIOutput::GetDisplayModeList, чтобы получить массив DXGI_MODE_DESC структур и количество элементов в массиве. Каждая DXGI_MODE_DESC структура представляет допустимый режим отображения выходных данных.

    UINT numModes = 0;
    DXGI_MODE_DESC* displayModes = NULL;
    DXGI_FORMAT format = DXGI_FORMAT_R32G32B32A32_FLOAT;
    
        // Get the number of elements
        hr = pOutput->GetDisplayModeList( format, 0, &numModes, NULL);
    
        displayModes = new DXGI_MODE_DESC[numModes]; 
    
        // Get the list
        hr = pOutput->GetDisplayModeList( format, 0, &numModes, displayModes);
    

Устройства

Использование Direct3D 11