Авторские права (c) Корпорация Microsoft.
28 октября 2024 г.
Этот пакет содержит «Набор инструментов DirectX», набор вспомогательных классов для написания кода Direct3D 11 C++ для приложений универсальной платформы Windows (UWP) для Windows 11, Windows 10, Xbox One и настольных приложений Win32 для Windows 7 с пакетом обновления 1 или Windows 7. позже.
Этот код предназначен для сборки с помощью 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
Audio.h — низкоуровневый аудио API с использованием XAudio2 (открытый заголовок DirectXTK for Audio)
BufferHelpers.h — помощники C++ для создания ресурсов D3D из данных ЦП.
CommonStates.h — фабрика, предоставляющая часто используемые объекты состояния D3D.
DDSTextureLoader.h — легкий загрузчик текстур файлов DDS.
DirectXHelpers.h — различные помощники C++ для программирования D3D.
Effects.h — набор встроенных шейдеров для типичных задач рендеринга.
GamePad.h — помощник контроллера геймпада, использующий XInput, Windows.Gaming.Input или GameInput.
GeometricPrimitive.h — рисует основные формы, такие как кубы и сферы.
GraphicsMemory.h — помощник для управления динамическим распределением графической памяти.
Keyboard.h — помощник по отслеживанию состояния клавиатуры
Model.h — рисует сетки, загруженные из файлов .CMO, .SDKMESH или .VBO.
Mouse.h — помощник мыши
PostProcess.h — набор встроенных шейдеров для распространенных операций постобработки.
PrimitiveBatch.h — простой и эффективный способ отрисовки пользовательских примитивов
ScreenGrab.h — легкая заставка снимков экрана
SimpleMath.h — упрощенная оболочка C++ для DirectXMath.
SpriteBatch.h — простой и эффективный рендеринг 2D-спрайтов
SpriteFont.h — рендеринг текста на основе растрового изображения.
VertexTypes.h — структуры для часто используемых форматов данных вершин.
WICTextureLoader.h — загрузчик текстур файлов изображений на основе WIC.
XboxDDSTextureLoader.h — эксклюзивный вариант DDSTextureLoader для Xbox One.
Файлы общедоступных заголовков (в пространстве имен DirectX C++):
Src
Исходные файлы DirectXTK и внутренние заголовки реализации.
Audio
DirectXTK для исходных файлов аудио и заголовков внутренней реализации
MakeSpriteFont
Инструмент командной строки, используемый для создания двоичных ресурсов для использования со SpriteFont.
XWBTool
Инструмент командной строки для создания волновых банков в стиле XACT для использования с классом WaveBank DirectXTK for Audio.
build
Содержит файлы YAML для конвейеров сборки, а также некоторые другие файлы сборки и сценарии.
Документация доступна на вики GitHub.
Все содержимое и исходный код этого пакета регулируются условиями лицензии MIT.
Для получения последней версии DirectXTK, отчетов об ошибках и т. д. посетите сайт проекта на GitHub.
СОВЕТЫ ПО БЕЗОПАСНОСТИ см. на GitHub.
Полную историю изменений можно найти на сайте CHANGELOG.md.
Начиная с выпуска за февраль 2023 г., реализация относительного перемещения мыши в классе Mouse была обновлена для накопления изменений между вызовами GetState
. По умолчанию каждый раз, когда вы вызываете GetState
дельты сбрасываются, что работает в сценариях, где вы используете относительное перемещение, но вызываете метод только один раз за кадр. Если вы вызываете его более одного раза за кадр, добавьте явный вызов EndOfInputFrame
чтобы вместо этого использовать явную модель сброса.
Начиная с выпуска за сентябрь 2022 года, библиотека использует встроенные пространства имен C++11 для разных типов, имеющих одинаковые имена в версиях DirectX 11 и DirectX 12 набора инструментов DirectX . Это обеспечивает уникальное для ссылки имя, такое как DirectX::DX11::SpriteBatch
, которое будет отображаться в выходных сообщениях компоновщика. Однако в большинстве случаев нет необходимости добавлять явное разрешение пространства имен DX11
в клиентский код.
Начиная с выпуска от июля 2022 года, параметр bool forceSRGB
для функций DDSTextureLoader Ex
теперь является параметром флага битовой маски типизированного перечисления DDS_LOADER_FLAGS
. Это может привести к серьезным изменениям в клиентском коде. Замените true
на DDS_LOADER_FORCE_SRGB
и false
на DDS_LOADER_DEFAULT
.
Начиная с выпуска за октябрь 2021 года, DGSLEffect больше не поддерживает обработку тем напрямую. Вместо этого используйте SkinnedDGSLEffect , производный от DGSLEffect.
Начиная с выпуска за июнь 2020 года, эта библиотека использует флаги битовой маски типизированного перечисления в соответствии с рекомендацией стандарта C++, раздел 17.5.2.1.3 Типы битовых масок . Это может иметь серьезные последствия для клиентского кода:
Вы не можете передать литерал 0
в качестве значения флагов. Вместо этого вы должны использовать соответствующее значение перечисления по умолчанию: AudioEngine_Default
, SoundEffectInstance_Default
, ModelLoader_Clockwise
или 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), возможно, не удастся построить все необходимые шейдеры.
Для поддержки DirectX 11 на Xbox One требуется устаревший Xbox One XDK. Необходимые файлы проекта см. в выпусках DirectX Tool Kit за февраль 2023 г. или более ранних версиях.
Начиная с выпуска за октябрь 2024 года, инструмент командной строки xwbtool также поддерживает длинные параметры в стиле GNU с использованием --
. Все существующие коммутаторы продолжают функционировать. MakeSpriteFont поддерживает только --version
и --help
для параметров в стиле POSIX.
Если у вас есть вопросы, рассмотрите возможность использования Stack Overflow с тегом Directxtk или сервера DirectX Discord на канале dx9-dx11-developers .
Для отчетов об ошибках и запросов на добавление функций используйте вопросы GitHub для этого проекта.
Этот проект приветствует вклад и предложения. Большинство вкладов требуют от вас согласия с Лицензионным соглашением для авторов (CLA), в котором говорится, что вы имеете право и действительно предоставляете нам права на использование вашего вклада. Подробную информацию можно найти на странице https://cla.opensource.microsoft.com.
Когда вы отправляете запрос на включение, бот CLA автоматически определяет, нужно ли вам предоставить CLA, и соответствующим образом оформляет PR (например, проверку статуса, комментарий). Просто следуйте инструкциям бота. Вам нужно будет сделать это только один раз во всех репозиториях, используя наш CLA.
Тесты новых функций также следует отправлять в виде PR в репозиторий Test Suite.
В этом проекте принят Кодекс поведения Microsoft с открытым исходным кодом. Для получения дополнительной информации см. часто задаваемые вопросы о Кодексе поведения или свяжитесь с нами по адресу [email protected], если у вас возникнут дополнительные вопросы или комментарии.
Этот проект может содержать товарные знаки или логотипы проектов, продуктов или услуг. Разрешенное использование товарных знаков и логотипов Microsoft регулируется и должно соответствовать Руководству Microsoft по товарным знакам и брендам. Использование товарных знаков или логотипов Microsoft в измененных версиях этого проекта не должно вызывать путаницу или подразумевать спонсорство Microsoft. Любое использование товарных знаков или логотипов третьих лиц регулируется политикой этих третьих сторон.
Набор инструментов DirectX — это работа Шона Харгривза и Чака Уолборна при участии Аарона Родригеса Эрнандеса и Дэни Роман.
Спасибо Шэнон Дрон за формат файла SDKMESH.
Спасибо Адриану Цаю за реализацию геодезической сферы.
Благодарим Гаррета Серака за помощь в создании пакетов NuGet для DirectX Tool Kit.
Спасибо Роберто Соннино за помощь с CMO
, DGSL-рендерингом и анимацией VS Starter Kit.
Спасибо Питу Льюису и Джастину Сондерсу за реализацию шейдеров с отображением нормалей и PBR.
Спасибо Эндрю Фарриеру и Скотту Мэтлоффу за постоянную помощь в проверке кода.