Прочитать на английском

Поделиться через


Xbox

Примечание

Xbox не тестируется в рамках процесса непрерывной интеграции репозитория vcpkg, поэтому регрессии могут возникать в рамках обновлений библиотеки.

Сообщество Xbox триплет

vcpkg включает в себя триплеты сообщества для разработки компьютеров Microsoft GDK и Xbox. Они используют набор инструментов компилятора MSVC (Visual Studio 2019 версии 16.11 или более поздней).

Существует два варианта для каждого триплета: статическое и динамическое связывание.

Консоль Vcpkg community triplets
Xbox One x64-xbox-xboxone
x64-xbox-xboxone-static
Серия Xbox X|S x64-xbox-scarlett
x64-xbox-scarlett-static

При static связывании триплеты используют среду выполнения MSVC в качестве библиотеки DLL (т. е. VCPKG_CRT_LINKAGE dynamic), так как это рекомендуемый и поддерживаемый сценарий использования.

Создание с помощью пакета SDK для Windows

Пакет SDK для Windows (19041) или более поздней версии включает системные заголовки, необходимые для сборки для WINAPI_FAMILY_GAMES секции API, используемой операционной системой Xbox Game. Таким образом, большинство библиотек можно создавать для этих тройных элементов без доступа к NDA Microsoft GDK с расширениями Xbox.

Создание с помощью GDK Microsoft с помощью расширений Xbox

Библиотеки, использующие API графики DirectX, должны быть созданы с помощью пользовательского варианта Direct3D 12.X, используемого операционной системой Xbox Game, и для этого требуется доступ к NDA Microsoft GDK с расширениями Xbox. Обратите внимание, что ОС Игры Xbox не поддерживает Direct3D 11, Direct2D/DirectWrite, OpenGL, GDI или любую старую версию Direct3D.

Библиотеки, требующие этих заголовков, должны использовать ms-gdkx порт заглушки, чтобы указать это требование. Этот порт ищет пути, на которые указываются GameDKLatestGameGXDKLatestпеременные среды, и GameGRDKLatest переменные среды.

Примечание

Разработчики игр Xbox отвечают за то, чтобы они и их издатели имели соответствующие и правильные условия лицензирования для использования любых сторонних компонентов программного обеспечения в соответствии с условиями лицензионного соглашения о названии. Обязательно обратитесь за соответствующей юридической консультацией для любого использования компонентов с открытым исходным кодом в названии.

UWP на Xbox

Если вы создаете UWP на Xbox, используйте вместо этого существующий x64-uwp триплет.

Заметки о поддержке

Проекты CMake для этих тройных наборов создаются с помощью CMAKE_SYSTEM_NAME параметра "Windows". Чтобы указать целевую консоль Xbox, XBOX_CONSOLE_TARGET переменная имеет значение "xboxone" или "scarlett".

Сборка Xbox тройная с /DWINAPI_FAMILY=WINAPI_FAMILY_GAMES помощью или /arch:AVX2/arch:AVX в зависимости от целевой консоли.

Триплеты Xbox также создаются вместе с /DUNICODE /D_UNICODE тем, как это настоятельно рекомендуется для современной разработки. Дополнительные сведения см. в манифесте UTF-8 По всему миру.

Для динамических библиотек не забудьте избежать эксликтов связывания с KERNEL32.LIB или ONECORE.LIB. Для платформы Xbox используется библиотека зонтиков платформы, которая конфликтует с kernel32и т. д. См. статью Microsoft Learn.

Дополнительные материалы

Дополнительные сведения см. в этой записи блога.

См. также пример CMakeExample на GitHub.