http://go.microsoft.com/fwlink/?LinkID=615561
Авторские права (c) Корпорация Microsoft.
28 октября 2024 г.
Этот пакет содержит «Набор инструментов DirectX», набор вспомогательных классов для написания кода Direct3D 12 C++ для приложений универсальной платформы Windows (UWP) для Windows 11 и Windows 10, игр для Xbox Series X|S и Xbox One, а также Win32. настольные приложения для Windows 11 и Windows 10.
Этот код предназначен для сборки с помощью Visual Studio 2019 (16.11), Visual Studio 2022, clang для Windows v12 или более поздней версии или MinGW 12.2. Для Visual Studio требуется использование пакета SDK обновления Windows 10 за май 2020 г. (19041) или более поздней версии.
Эти компоненты предназначены для работы без необходимости использования какого-либо содержимого из устаревшего пакета DirectX SDK. Подробности см. в разделе «Где находится DirectX SDK?».
Inc
Файлы общедоступных заголовков (в пространстве имен DirectX C++):
Src
Audio
build
MakeSpriteFont и XWBTool можно найти в наборе инструментов DirectX для DirectX 11.
Документация доступна на вики GitHub.
Все содержимое и исходный код этого пакета регулируются условиями лицензии MIT.
Для получения последней версии DirectXTK12, отчетов об ошибках и т. д. посетите сайт проекта на GitHub.
Нет поддержки шейдеров эффектов Visual Studio Directed Graph Shader Language (DGSL) (т. е. DGSLEffect ). Файлы CMO загружаются с использованием материалов BasicEffect или SkinnedEffect.
VertexTypes не включает VertexPositionNormalTangentColorTexture или VertexPositionNormalTangentColorTextureSkinning, которые были предназначены для использования с конвейером DGSL.
Набор инструментов DirectX для DirectX 11 поддерживает уровень функций 9.x, а для DirectX 12 требуется уровень функций Direct3D 11.0. Драйверов DirectX 12 для устройств с более низким уровнем функций не ожидается.
Библиотека предполагает, что она создается для Windows 10 (она же _WIN32_WINNT=0x0A00
), поэтому она использует XAudio 2.9 и WIC2, а также DirectX 12.
Набор инструментов DirectX для аудио, GamePad, клавиатуры, мыши и SimpleMath идентичен версии DirectX 11.
СОВЕТЫ ПО БЕЗОПАСНОСТИ см. на GitHub.
Полную историю изменений можно найти на сайте CHANGELOG.md.
В выпуске за июнь 2024 г. параметр initialState
по умолчанию для функции CreateUploadBuffer
в BufferHelpers был удален. На уровне проверки DirectX 12 единственным допустимым начальным состоянием для буфера загрузки является D3D12_RESOURCE_STATE_GENERIC_READ
.
Начиная с выпуска за февраль 2023 г., реализация относительного перемещения мыши в классе Mouse была обновлена для накопления изменений между вызовами GetState
. По умолчанию каждый раз, когда вы вызываете GetState
дельты сбрасываются, что работает в сценариях, где вы используете относительное перемещение, но вызываете метод только один раз за кадр. Если вы вызываете его более одного раза за кадр, добавьте явный вызов EndOfInputFrame
чтобы вместо этого использовать явную модель сброса.
Начиная с выпуска за сентябрь 2022 года, библиотека использует встроенные пространства имен C++11 для разных типов, имеющих одинаковые имена в версиях DirectX 11 и DirectX 12 набора инструментов DirectX . Это обеспечивает уникальное для ссылки имя, например DirectX::DX12::SpriteBatch
, которое будет отображаться в выходных сообщениях компоновщика. Однако в большинстве случаев использования нет необходимости добавлять явное разрешение пространства имен DX12
в клиентский код.
Начиная с выпуска в июне 2021 года, эта библиотека создает шейдеры HLSL с помощью Shader Model 6 через DXC. Дополнительную информацию смотрите на этой вики-странице. В проектах Microsoft GDK всегда использовалась Shader Model 6.
Начиная с выпуска от июня 2020 года, эта библиотека использует флаги битовых масок типизированного перечисления в соответствии с рекомендацией раздела 17.5.2.1.3 Типы битовых масок стандарта C++ . Это может иметь серьезные последствия для клиентского кода:
Вы не можете передать литерал 0
в качестве значения флагов. Вместо этого вы должны использовать соответствующее значение перечисления по умолчанию: AudioEngine_Default
, SoundEffectInstance_Default
, ModelLoader_Clockwise
, DDS_LOADER_DEFAULT
или WIC_LOADER_DEFAULT
.
Используйте тип перечисления вместо DWORD
при локальном создании значений флагов с помощью операций с битовой маской. Например, WIC_LOADER_FLAGS flags = WIC_LOADER_DEFAULT; if (...) flags |= WIC_LOADER_FORCE_SRGB;
Проекты UWP и классический настольный проект Win10 включают конфигурации для платформы ARM64. Для их создания требуется установка набора инструментов ARM64.
Для разработки ARM64/AArch64 настоятельно рекомендуется использовать компилятор VS 2022 вместо набора инструментов VS 2019. Windows SDK (26100 или более поздняя версия) несовместим с VS 2019 для разработки Win32 на ARM64. Обратите внимание, что платформа ARM32/AArch32 устарела .
При использовании clang/LLVM для платформы ARM64/AArch64 требуется Windows 11 SDK (22000) или более поздняя версия.
Сценарий CompileShaders.cmd
должен иметь окончания строк в стиле Windows (CRLF). Если его изменить на окончание строк в стиле Linux (LF), возможно, не удастся построить все необходимые шейдеры.
Если у вас есть вопросы, рассмотрите возможность использования Stack Overflow с тегом Directxtk или сервера DirectX Discord на канале dx12-developers .
Для отчетов об ошибках и запросов на добавление функций используйте вопросы GitHub для этого проекта.
Этот проект приветствует вклад и предложения. Большинство вкладов требует от вас согласия с Лицензионным соглашением для авторов (CLA), в котором говорится, что вы имеете право и действительно предоставляете нам права на использование вашего вклада. Подробную информацию можно найти на странице https://cla.opensource.microsoft.com.
Когда вы отправляете запрос на включение, бот CLA автоматически определяет, нужно ли вам предоставить CLA, и соответствующим образом оформляет PR (например, проверку статуса, комментарий). Просто следуйте инструкциям бота. Вам нужно будет сделать это только один раз во всех репозиториях, используя наш CLA.
Тесты новых функций также следует отправлять в виде PR в репозиторий Test Suite.
В этом проекте принят Кодекс поведения Microsoft с открытым исходным кодом. Для получения дополнительной информации см. часто задаваемые вопросы о Кодексе поведения или обращайтесь по адресу [email protected], если у вас возникнут дополнительные вопросы или комментарии.
Этот проект может содержать товарные знаки или логотипы проектов, продуктов или услуг. Разрешенное использование товарных знаков и логотипов Microsoft регулируется и должно соответствовать Руководству Microsoft по товарным знакам и брендам. Использование товарных знаков или логотипов Microsoft в измененных версиях этого проекта не должно вызывать путаницу или подразумевать спонсорство Microsoft. Любое использование товарных знаков или логотипов третьих лиц регулируется политикой этих третьих сторон.
Набор инструментов DirectX для DirectX 11 — это работа Шона Харгривза и Чака Уолборна при участии Аарона Родригеса Эрнандеса и Дэни Роман.
Набор инструментов DirectX для DirectX 12 — это работа Пита Льюиса, Джастина Сондерса и Чака Уолборна, в значительной степени основанная на наборе инструментов DirectX для DirectX 11.
Спасибо Шэнон Дрон за формат файла SDKMESH.
Спасибо Адриану Цаю за реализацию геодезической сферы.
Благодарим Гаррета Серака за помощь в создании пакетов NuGet для DirectX Tool Kit.
Спасибо Питу Льюису и Джастину Сондерсу за реализацию шейдеров с отображением нормалей и PBR.
Спасибо Трэвису Джонсону за поддержку mGPU.
Спасибо Роберто Соннино за помощь с форматом CMO и анимацией VS Starter Kit.
Спасибо Ричи Мейеру за вклад в создание специальной памяти Xbox PIX и поддержку событий отслеживания распределения типов.
Спасибо Эндрю Фарриеру и Скотту Мэтлоффу за постоянную помощь в проверке кода.