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

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

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

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

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

Технология или инструмент Описание:
Windows графические компоненты
Заголовки и библиотеки для Direct3D и других Windows графических API, таких как Direct2D, доступны в пакете SDK для Windows.
[! Примечание]
Устаревшие библиотеки служебной программы D3DX9/D3DX10/D3DX11 доступны через NuGet, но есть и ряд альтернативных открытый код. Служебная библиотека D3DCSX DirectCompute и распространяемая библиотека DLL доступны в пакете SDK для Windows. D3DX12 доступен на GitHub.

Компилятор HLSL (FXC.EXE)
Компилятор HLSL — это средство в соответствующем подкаталоге архитектуры в папке bin в пакете SDK Windows.
[! Примечание]
API D3DCompiler и распространяемая библиотека DLL доступны в пакете SDK для Windows.


Для разработки DirectX 12 используйте DXCompiler в пакете SDK для Windows и размещенном на GitHub.
PIX для Windows
Замена PIX для средства Windows теперь является функцией в Microsoft Visual Studio, называемой Visual Studio отладчик графики. Эта функция значительно улучшила удобство использования, поддержку Windows 8 и Direct3D 11.1, а также интеграцию с традиционными функциями Microsoft Visual Studio, такими как стеки вызовов и окна отладки для отладки HLSL. Дополнительные сведения об этой новой функции см. в разделе "Отладка графики DirectX".

Сведения о разработке DirectX 12 см. в последнем поколении PIX на Windows
XAudio2 для Windows
API XAudio2 теперь является системным компонентом в Windows 8.x и Windows 10. Заголовки и библиотеки для XAudio2 доступны в пакете SDK для Windows. Сведения о поддержке Windows 7 см. в разделе XAudio2Redist.
XInput для Windows
API XInput 1.4 теперь является системным компонентом в Windows 8.x и Windows 10. Заголовки и библиотеки для XInput доступны в пакете SDK для Windows.
[! Примечание]
Устаревшая версия XInput 9.1.0 также доступна в составе Windows 7 или более поздней версии.

XNAMATH
Последняя версия XNAMATH, которая обновляется для новых наборов инструкций, а также ARM/ARM64, теперь является DirectXMath. Заголовки для DirectXMath доступны в пакете SDK для Windows и в GitHub.
Средство просмотра возможностей DirectX панель управления и DirectX
Служебные программы DirectX панель управления и средства просмотра возможностей DirectX включаются в соответствующий подкаталог архитектуры в папке bin в пакете SDK для Windows. Средство просмотра возможностей DirectX также доступно в GitHub.
XACT
Кроссплатформенное средство Xbox Audio (XACT) больше не поддерживается для использования в Windows.
Обозреватель игр и GDFMAKER
API Обозревателя игр представляет игры пользователям Windows. API Обозревателя игр поддерживается только в Windows Vista и Windows 7. Используйте средство "Создатель файлов определений игр" (GDFMAKER.EXE), чтобы объявить оценки игр для приложений магазина Windows.
Средство "Создатель файлов определений игр" (GDFMaker.exe) входит в подкаталог x86 в папке bin в пакете SDK для Windows и поддерживает как приложения Магазина Windows, так и классические приложения Win32.

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

 

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

Примечание

Не удается установить пакет SDK DirectX, если у вас уже установлена определенная версия распространяемого пакета Visual C++ 2010. Дополнительные сведения и решение для устранения этой проблемы см. в разделе "Ошибка 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 в пакет SDK Windows изменения параметров проекта необходимы для правильной сборки этих примеров с помощью пакета 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" при установке пакета 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 и более поздних версиях и поэтому не входит в соответствующий пакет SDK Windows. Изучите альтернативные решения для работы с API Direct3D. Для устаревших проектов, таких как примеры пакета SDK для DirectX Windows 7 (и более ранних версий), необходимо выполнить следующие действия для создания приложений с помощью D3DX с помощью пакета SDK DirectX:

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

      i. Откройте **Свойства** для проекта и выберите страницу **VC++ Каталоги**. ii. Выберите **Все конфигурации и все платформы**. iii. Задайте следующие каталоги:
      • Исполняемые каталоги: <наследование от родительских или проектных> значений по умолчанию (в раскрывающемся списке справа)
      • Include Directories: $(IncludePath);$(DXSDK_DIR)Include
      • Include Library Directories: $(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 в проекте. Этот заголовок не существует в пакете SDK Windows, а версия пакета SDK DirectX конфликтует с новым winerror.h.

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

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

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

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

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

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

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

  7. Любой проект, использующий API XInput и предназначенный для выполнения на Windows 7 или более ранних версиях Windows необходимо использовать либо устаревшую версию (9.1.0), либо явно включить заголовки и библиотеки для этого компонента из пакета SDK DirectX. Заголовок XInput и XINPUT. БИБЛИОТЕКА LIB, включенная в пакет SDK для Windows, предназначена только для версии (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, включенные в пакет SDK для Windows, предназначены только для версии (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> , содержащий записи пути, такие как <ExecutablePath> и <IncludePath> , чтобы вернуться к стандартным значениям по умолчанию. Если в этих файлах нет ссылок на DXSDK_DIR, изменения не нужны.

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

    Пример:

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

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

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

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

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