Короткий ответ заключается в том, что в рамках разработки Windows 8 SDK (около 2011 г.) "DirectX SDK" был перенесен в Windows SDK. Библиотеки, заголовки и инструменты DirectX были перемещены в Windows SDK, а «DirectX SDK» был объявлен устаревшим (т. Е. Выпуск DirectX SDK в июне 2010 года был последним из когда-либо сделанных).
Microsoft перенесла образцы онлайн для Windows 8, поэтому большинство образцов в DirectX SDK были заброшены в пользу Windows Store / UWP образцов. В качестве личного проекта я поместил несколько образцов Direct3D 11 на обновленный GitHub , поэтому они используют только Windows SDK.
Число технологий, которые были оставлены в этой миграции, как отмечено на странице Microsoft Docs .
Разработка Direct3D 9 считается устаревшей, и основной причиной ее дальнейшего использования было Windows XP поддержка. Windows 8 SDK не поддерживает разработку Windows XP - Visual Studio 2012-2017 поддерживает разработку Windows XP с использованием Windows 7.1A SDK. Если вы хотите использовать Direct3D 9, вы в основном застряли с использованием унаследованного DirectX SDK - хотя некоторые движки имеют достаточно своего собственного вспомогательного кода, который им действительно не нужен D3DX9.
Разработка Direct3D 10 считается наследием. Direct3D 11 - это строгий супернабор Direct3D 10, поддерживаемый теми же версиями Windows, а механизм Feature Level означает, что Direct3D 11 работает на * * аппаратном обеспечении, чем Direct3D 10 когда-либо. Таким образом, вспомогательная библиотека D3DX10
устарела.
Библиотека XACT не была перенесена. Он был создан в основном для Xbox 360, поэтому он устарел.
Управляемый DirectX 1.1 устарел целую вечность (~ 2005)
См. The Zomb ie DirectX SDK
Что касается того, что вы должны использовать вместо этого, я создал несколько библиотек, чтобы заменить то, что было в D3DX9 / D3DX10 / D3DX11. См. Жизнь без D3DX
Для разработки DirectX 12 устаревший DirectX SDK никогда не поддерживал его. Образцы находятся на GitHub , в противном случае вы должны просто использовать Windows 10 SDK. У меня есть версия DirectX Tool Kit для DirectX 12, а также GitHub . Тем не менее, если вы новичок в DirectX, вам действительно следует начать с DirectX 11 .
Там означает такую вещь, как D3DX12
, но это не совсем то же самое, что и старая библиотека D3DX11
. D3DX11
имел код для загрузки текстур, выполняющий сжатие B C и др. c. и требуются как заголовок, так и среда выполнения DLL
. Единственный способ отправить DLL
в вашу игру - использовать устаревшую DirectX Setup .
D3DX12
- это просто заголовок некоторых вспомогательных функций. Там нет DLL и нет REDIST. Обычно он копируется в проект при создании шаблона DirectX 12 Visual Studio, и его можно загрузить с GitHub .
DirectX Tool Kit для DX11 и DX12 , DirectXTex , DirectXMe sh, DirectXMath и UVAtlas обеспечивают многое из того, что D3DX9
, D3DX10
и D3DX11
сделали, но поддерживают DirectX 11 и DirectX 12. Все они с открытым исходным кодом, поэтому нет DLL или REDIST: вы просто создаете его самостоятельно из исходного кода. Они не являются «вставными» заменами, но обеспечивают ту же функциональность в более современной форме C ++. Они поддерживают любую программу на C ++, написанную для разработки classi c "Win32", приложений Universal Windows Platform (UWP) или Xbox One.
Действительно, это первичная топи c I ' последние десять лет я освещал в моем блоге . Там много подробностей, если вы хотите больше информации о том, что происходит.