Узнать версию DirectX

как определить, какая версия DirectX на компьютере с Windows 7 — 11 или 11.1?

предпочтительно использовать язык .NET, возможно, через PInvoke или SharpDX?


Просто попробуйте создать устройство с определенным уровнем функций (вместе с другими параметрами).

  • В собственном коде (используйте одну из функций D3D11CreateDevice * ). Если функция не удалась — функциональный уровень не поддерживается. Чтобы упростить задачу, мы обычно передаем массив уровней функций, а затем, если устройство не nullptr , мы можем проверить, какой из них наиболее поддерживаемый:

      константные D3D_FEATURE_LEVEL arrFeatLevels [] = {D3D_FEATURE_LEVEL_11_1, D3D_FEATURE_LEVEL_11_0, D3D_FEATURE_LEVEL_10_1, D3D_FEATURE_LEVEL_10_0, D3D_FEATURE_LEVEL_9_3, D3D_FEATURE_LEVEL_9_2, D3D_FEATURE_LEVEL_9_1}; константные неподписанных INT nFeatLevels = _countof (arrFeatLevels); D3D11CreateDeviceAndSwapChain (..., arrFeatLevels, nFeatLevels, ...  , & m_Device, & featureLevel, & m_Context); if (m_Device && m_Context) {featureLevel//здесь вы можете получить доступ к наивысшему поддерживаемому уровню функций  
  • В SharpDX вам нужно будет использовать конструктор, который принимает определенные уровни функций:

      Device (DriverType, DeviceCreationFlags, FeatureLevel [])  

    если создание устройства прошло успешно, проверьте свойство Device.FeatureLevel .

Удачного кодирования !

Edit

Думаю, я неверно истолковал ваш вопрос. Вы спрашивали, какая версия поддерживается ОС, а не ОС + видеокарта + драйвер вместе. Максимальная поддерживаемая версия предустановлена ​​вместе с ОС, поэтому вам нужно только знать, в какой ОС вы работаете:

  Версия ОС Версия среды выполнения DX Windows Vista DirectX 10 Windows Vista SP1/SP2 DirectX 10.1 Windows  Vista SP2 DirectX 11.0Windows 7 DirectX 11.0Windows 7 SP1 DirectX 11.0Windows 7 SP1 с KB2670838 DirectX 11.1Windows 8/Windows RT DirectX 11.1Windows 8.1/Windows RT DirectX 11.2  

источники:

  • Википедия: версии DirectX #
  • Обновление DirectX 11.1 и Windows 7

Вы также можете запросить версию d3d11.dll и сравните с теми, которые находятся на вики-странице. См .:

  • c ++ Как программно получить версию Файл DLL или EXE?
  • c # Как получить номер версии файла .exe из пути к файлу
Оцените статью
techsly.ru
Добавить комментарий