Где находится пакет SDK для DirectX?

Начиная с Windows 8 пакет SDK для DirectX входит в состав пакета Windows SDK.

Изначально мы создали пакет SDK для DirectX как высокопроизводительную платформу для разработки игр на базе Windows. По мере развития технологий DirectX они стали актуальны для более широкого спектра приложений. Сегодня доступность оборудования Direct3D на компьютерах заставляет даже традиционные классические приложения использовать аппаратное ускорение графики. Параллельно технологии DirectX более интегрированы с Windows. DirectX теперь является основной частью Windows.

Так как windows SDK является основным пакетом SDK для разработчиков для Windows, в него теперь включен DirectX. Теперь вы можете использовать windows SDK для создания отличных игр для Windows. Чтобы скачать пакет SDK для Windows 11, windows 10 SDK или пакет SDK для Windows 8.x, см. статью Windows SDK и архив эмулятора.

Следующие технологии и средства, которые ранее были частью пакета SDK DirectX, теперь являются частью пакета WINDOWS SDK.

Технология или инструмент Описание
Графические компоненты Windows
Заголовки и библиотеки для Direct3D и других графических API Windows, таких как Direct2D, доступны в windows SDK.
Примечание: Устаревшие служебные библиотеки D3DX9/D3DX10/D3DX11 доступны через NuGet, но есть также ряд открытый код альтернатив. Библиотека служебной программы D3DCSX DirectCompute и распространяемая библиотека DLL доступны в windows SDK. D3DX12 доступен на сайте GitHub.
Компилятор HLSL (FXC.EXE)
Компилятор HLSL — это средство в соответствующем подкаталоге архитектуры в папке bin в пакете Windows SDK.
Примечание: API D3DCompiler и распространяемая библиотека DLL доступны в windows SDK.
Для разработки DirectX 12 используйте DXCompiler в пакете Windows SDK и размещенном на GitHub.
PIX для Windows
Замена средства PIX для Windows теперь является функцией в Microsoft Visual Studio, которая называется Visual Studio Graphics Debugger. Эта функция значительно улучшила удобство использования, поддержку Windows 8 и Direct3D 11.1, а также интеграцию с традиционными функциями Microsoft Visual Studio, такими как стеки вызовов и окна отладки для отладки HLSL . Дополнительные сведения об этой новой функции см. в разделе Отладка графики DirectX.

Сведения о разработке DirectX 12 см. в последнем поколении PIX в Windows.
XAudio2 для Windows
API XAudio2 теперь является системным компонентом в Windows 11, Windows 10 и Windows 8.x. Заголовки и библиотеки для XAudio2 доступны в windows SDK. Сведения о поддержке Windows 7 см. в разделе XAudio2Redist.
XInput для Windows
API XInput 1.4 теперь является системным компонентом в Windows 11, Windows 10 и Windows 8.x. Заголовки и библиотеки для XInput доступны в windows SDK.
Примечание: Устаревший XInput 9.1.0 также доступен в составе Windows 7 или более поздней версии.
XNAMATH
Последней версией XNAMATH, которая обновляется для новых наборов инструкций, а также ARM/ARM64, теперь является DirectXMath. Заголовки для DirectXMath доступны в windows SDK и на GitHub.
Панель управления DirectX и средство просмотра возможностей DirectX
Служебные программы Панель управления DirectX и Средства просмотра возможностей DirectX включены в соответствующий подкаталог архитектуры в папке bin в windows SDK. Средство просмотра возможностей DirectX также доступно на сайте GitHub.
XACT
Кроссплатформенное средство Xbox Audio (XACT) больше не поддерживается для использования в Windows.
Игры Обозреватель и GDFMAKER
API Обозреватель игр представляет игры пользователям Windows. API Обозреватель игр поддерживается только в Windows Vista и Windows 7. Используйте средство "Создатель файлов определений игр" (GDFMAKER.EXE), чтобы объявить оценки игр для приложений Магазина Windows.
Средство Game Definition File Maker (GDFMaker.exe) входит в подкаталог x86 в папке bin в windows SDK и поддерживает как приложения Магазина Windows, так и классические приложения Win32.

Другие средства пакета SDK для DirectX
Различные инструменты, такие как dxtex.exe, meshconvert.exe, texconv.exe и uvatlas.exe, можно найти в Интернете. Дополнительные сведения об этих инструментах см. в разделе Каталог средств пакета SDK для DirectX.
Примеры
Примеры приложений, которые выделяют технологии DirectX 12 в Windows, можно найти в репозитории примеров DirectX . Большинство примеров для более старых версий Direct3D также доступны в Интернете. Дополнительные сведения об этих примерах см. в разделе Каталог примеров пакета SDK для DirectX.
Управляемый DirectX 1.1
Сборки .NET DirectX являются устаревшими и не рекомендуются для использования новыми приложениями. Существует ряд альтернативных вариантов. См . раздел DirectX и .NET.

 

При необходимости пакет SDK для DirectX можно скачать из Центра загрузки Майкрософт , но использовать для новых проектов не рекомендуется.

Примечание

Не удается установить пакет SDK для DirectX, если у вас уже установлена определенная версия распространяемого пакета Visual C++ 2010. Дополнительные сведения об ошибке S1023 и решении этой проблемы см. в статье Ошибка S1023 при установке пакета SDK для DirectX (июнь 2010 г.).

 

Использование проектов пакета SDK DirectX с Visual Studio

Примеры из пакета SDK DirectX за июнь 2010 г. поддерживаются номерами SKU Visual Studio ценовой категории "Премиум" (Microsoft Visual Studio Professional 2012, Microsoft Visual Studio Ultimate 2012 Microsoft Visual Studio Professional 2013 или Microsoft Visual Studio Ultimate 2013) в Windows 7 и Windows 8 и более поздних выпусках. В связи с переходом заголовков и библиотек DirectX в windows SDK для правильной сборки этих примеров необходимы изменения параметров проекта с учетом того, как пакет SDK для Windows 8 и более поздних версий упаковывается с номерами SKU Visual Studio уровня "Премиум".

Эти действия также применяются к вашим собственным проектам, которые зависят от пакета SDK для DirectX.

  1. Убедитесь, что на компьютере разработчика установлен выпуск пакета SDK DirectX за июнь 2010 г. При установке на компьютер под управлением Windows 8 и более поздних версий вам будет предложено включить .NET 3.5 в качестве необходимой установки пакета SDK для DirectX.

    Примечание

    Не удается установить пакет SDK для DirectX, если у вас уже установлена определенная версия распространяемого пакета Visual C++ 2010. Дополнительные сведения об ошибке S1023 и решении этой проблемы см. в статье Ошибка S1023 при установке пакета SDK для DirectX (июнь 2010 г.).

     

  2. Убедитесь, что вы используете один из номеров SKU Visual Studio уровня "Премиум". Microsoft Visual Studio Express 2012 для Windows 8 или Microsoft Visual Studio Express 2013 для Windows не будут создавать классические приложения для Windows 8 и более поздних версий, например примеры пакета SDK для DirectX. Чтобы установить один из номеров SKU Visual Studio уровня "Премиум", перейдите в раздел Скачивание Visual Studio и следуйте инструкциям.

  3. Используйте обозреватель примеров пакета SDK для DirectX, чтобы установить файлы проекта для нужного примера. Откройте файл решения, совместимого с Microsoft Visual Studio 2010 (с суффиксом _2010).

  4. Если вы открываете пример в системе, где установлена только Microsoft Visual Studio 2012 или Microsoft Visual Studio 2013, появится следующее сообщение: "Это решение содержит один или несколько проектов, использующих более раннюю версию компилятора и библиотек VC++. Каждый проект можно обновить для использования компилятора и библиотек VC++ (версия 110)." Выберите параметр Обновить в этом диалоговом окне, чтобы выполнить обновление перед открытием проекта.

    В противном случае можно выполнить обновление до visual Studio 2012 или Visual Studio 2013 компилятора C++ 11 и библиотек после их загрузки, щелкнув правой кнопкой мыши решение и выбрав Обновить проекты VC++.

  5. D3DX не считается каноническим API для использования Direct3D в Windows 8 и более поздних версиях и поэтому не входит в соответствующий пакет WINDOWS SDK. Изучите альтернативные решения для работы с API Direct3D. Для устаревших проектов, таких как примеры пакета SDK DirectX для Windows 7 (и более ранних версий), для создания приложений с помощью D3DX с помощью пакета SDK для DirectX необходимо выполнить следующие действия:

    1. Измените каталоги VC++ проекта следующим образом, чтобы использовать правильный порядок для заголовков и библиотек пакета SDK.

      i. Откройте **Свойства** проекта и выберите страницу **Каталоги VC++**. ii. Выберите **Все конфигурации и все платформы**. iii. Задайте следующие каталоги:
      • Исполняемые каталоги: <наследование от родительских или проектных> значений по умолчанию (в раскрывающемся списке справа)
      • Каталоги включения: $(IncludePath);$(DXSDK_DIR)Включить
      • Каталоги библиотеки: $(LibraryPath);$(DXSDK_DIR)Lib\x86

      iv. Щелкните Применить.
      v. Выберите платформу x64.
      vi. Задайте каталог библиотеки следующим образом:

      • Каталоги библиотек: $(LibraryPath);$(DXSDK_DIR)Lib\x64
    2. Если в проект включены "d3dx9.h", "d3dx10.h" или "d3dx11.h", не забудьте явно включить "d3d9.h", "d3d10.h" и "dxgi.h" или "d3d11.h" и "dxgi.h", чтобы убедиться, что вы выбираете более новую версию. При необходимости можно отключить предупреждение C4005 ; Однако это предупреждение указывает, что вы используете более раннюю версию этих заголовков.

    3. Удалите все ссылки на DXGIType.h в проекте. Этот заголовок не существует в windows SDK, и версия пакета SDK DirectX конфликтует с новым winerror.h.

    4. Все библиотеки DLL D3DX устанавливаются на компьютер разработчика с помощью установки пакета SDK DirectX. Убедитесь, что необходимые зависимости D3DX перераспределяются вместе с любым примером или приложением, если оно перемещено на другой компьютер.

    5. Имейте в виду, что технологии замены для текущего использования D3DX11 включают DirectXTex, DirectXTK, DirectXMesh и UVAtlas. D3DXMath заменяется на DirectXMath.

  6. Убедитесь, что вы используете новую версию компилятора шейдера HLSL, выполнив следующие условия:

    1. Изменение исполняемого каталога согласно шагу 5 приведет к тому, что сборки проекта будут использовать FXC из установки Windows SDK. Имейте в виду, что файлы HLSL теперь официально распознаются Visual Studio. Их можно добавить в качестве файлов проекта и задать параметры компилятора в системе проектов.

    2. Вызов компиляции во время выполнения с помощью устаревшей библиотеки DLL D3DX будет использовать неправильную старую версию компилятора HLSL. Замените все ссылки на API D3DXCompile*, D3DX10Compile*, и D3DX11Compile* в коде на функцию D3DCompile в D3DCOMPILER_46.DLL или D3DCOMPILER_47.DLL.

    3. Любой проект, использующий компиляцию шейдера во время выполнения, должен иметь D3DCOMPILER_xx.DLL, скопированные в локальный путь к исполняемому файлу проекта. Эта библиотека DLL доступна в этом подкаталоге установки windows SDK в папке %ProgramFiles(x86)%\Windows Kits\8.0\Redist\D3D\<arch> или %ProgramFiles(x86)%\Windows Kits\8.1\Redist\D3D\<arch> , где <arch>x86 и x64.

      D3DCOMPILER_46.DLL или D3DCOMPILER_47.DLL из windows SDK не являются системным компонентом и не должны копироваться в системный каталог Windows. Эту библиотеку DLL можно распространить на другие компьютеры с приложением в качестве параллельной библиотеки DLL.

  7. Любой проект, использующий API XInput и предназначенный для запуска в Windows 7 или более ранних версиях Windows, должен использовать устаревшую версию (9.1.0) или явно включить заголовки и библиотеки для этого компонента из пакета SDK DirectX. Заголовок XInput и XINPUT. Библиотеки LIB, включенные в windows SDK, предназначены только для версии (1.4), которая входит в состав Windows 8 и более поздних версий. Тот же заголовок можно использовать с XINPUT9_1_0.LIB, чтобы использовать устаревшую версию, которая входит в состав более ранних версий Windows. Устаревшая версия XInput не обнаруживает все возможности и не поддерживает звук, интегрированный с контроллером, поэтому, если требуется поддержка этих функций, необходимо использовать версию пакета SDK для DirectX (1.3).

    Чтобы использовать полнофункциональный API XInput нижнего уровня, следует #include напрямую использовать определенные заголовки XInput из пакета SDK для DirectX:

    #include <%DXSDK_DIR%Include\xinput.h>

    ... и в параметрах компоновщика для дополнительных зависимостей свяжите напрямую с библиотекой XInput пакета SDK для DirectX:

    %DXSDK_DIR%Include\<arch>\xinput.lib

    Двоичный файл XINPUT1_3.DLL устанавливается в системные каталоги Windows с помощью пакета SDK DirectX на компьютере разработчика. Вам потребуется повторно распространить этот двоичный файл вместе с приложением с помощью установки Программы установки DirectX из пакета SDK для DirectX.

  8. Любой проект, использующий API XAudio2 и предназначенный для запуска в Windows 7 или более ранних версиях Windows, должен использовать более раннюю версию (9.1.0) или явно включать заголовки и библиотеки для этого компонента из пакета SDK DirectX. Заголовки и библиотеки XAudio2, которые входят в состав Windows SDK, предназначены только для версии (2.8), которая входит в состав Windows 8.

    Например, при использовании XAudio2 следует #include напрямую использовать определенные заголовки XAudio2 из пакета SDK для DirectX:

    #include <%DXSDK_DIR%Include\xaudio2.h>

    ... и в параметрах компоновщика для дополнительных зависимостей свяжите ссылку непосредственно на библиотеку XAudio2 пакета SDK для DirectX:

    %DXSDK_DIR%Include\<arch>\xaudio2.lib

    Двоичный файл XAUDIO2_7.DLL устанавливается в системные каталоги Windows с помощью пакета SDK DirectX на компьютере разработчика. Эти библиотеки необходимо распространить вместе с приложением с помощью установки Программы установки DirectX из пакета SDK для DirectX.

  9. Если вы использовали пакет SDK DirectX в предыдущих версиях Visual Studio, обновление Visual Studio 2010 могло перенести путь к пакету SDK DirectX в параметры проекта по умолчанию. Рекомендуется удалить эти параметры, чтобы избежать ошибок сборки в будущем. В каталоге %USERPROFILE%\AppData\Local\Microsoft\MSBuild\v4.0 измените файлы Microsoft.Cpp.Win32.user и Microsoft.Cpp.x64.user , чтобы удалить все ссылки на пути DXSDK_DIR. Кроме того, можно удалить весь <узел PropertyGroup>, содержащий записи Path, такие как <ExecutablePath> и <IncludePath>, чтобы отменить изменения стандартным значениям по умолчанию. Если в этих файлах нет ссылок на DXSDK_DIR, вносить изменения не нужно.

  10. Если полученное приложение поддерживает Windows Vista с пакетом обновления 2 (SP2), а также Windows 7 и Windows 8 и более поздних версий, задайте для определения препроцессора с именем _WIN32_WINNT значение 0x600. Если он поддерживает только Windows 7, Windows 8 и более поздних версий, задайте для него значение 0x601.

    Пример:

    1. Откройте свойства проекта и выберите C/C++>Preprocessor.
    2. Выберите Все конфигурации и Все платформы.
    3. Перейдите в раздел Определения препроцессора и задайте _WIN32_WINNT=0x600.
    4. Щелкните Применить.

Записи блога, посвященные играм для Windows и DirectX SDK

Где находится пакет SDK для DirectX (выпуск 2021)?

Пакеты SDK для DirectX определенного возраста

Проживание без D3DX