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

В этом разделе показано, как использовать инфраструктуру графики 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