This commit is contained in:
jonmartinms 2024-06-21 11:53:37 -07:00 коммит произвёл GitHub
Родитель 41b5942c4f
Коммит 3e11735ae0
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
96 изменённых файлов: 14537 добавлений и 686 удалений

Просмотреть файл

@ -7,7 +7,7 @@
#pragma once
#pragma warning(push)
#pragma warning(disable : 4316 4324) // We don't care that ShaderRecord (or derived types) are potentially unaligned or padded. They won't be in the Upload Heap
#pragma warning(disable : 4062 4316 4324) // We don't care that ShaderRecord (or derived types) are potentially unaligned or padded. They won't be in the Upload Heap
#include <iomanip>
#include <sstream>

Просмотреть файл

@ -71,7 +71,7 @@ namespace DirectX
{
inline namespace DX12
{
namespace Internal
namespace ToolKitInternal
{
// Reuse the WIC factory function from the DirectX Tool Kit. For implementation details, see WICTextureLoader.cpp
extern IWICImagingFactory2* GetWIC();
@ -79,7 +79,7 @@ namespace DirectX
}
}
using namespace DirectX::DX12::Internal;
using namespace DirectX::DX12::ToolKitInternal;
// --------------------------------------------------------------------------------
// FrontPanelDisplay methods

Просмотреть файл

@ -149,9 +149,9 @@ float3 MapHDRSceneToDisplayCapabilities(float3 normalizedLinearValue, float soft
const float max = maxBrightnessOfHDRScene2084; // To determine range, use max brightness of HDR scene
float3 t = saturate((ST2084 - p0) / (max - p0)); // Amount to lerp wrt current value
float3 b0 = (p0 * (1 - t)) + (p1 * t); // Lerp between p0 and p1
float3 b1 = (p1 * (1 - t)) + (p2 * t); // Lerp between p1 and p2
float3 mappedValue = (b0 * (1 - t)) + (b1 * t); // Final lerp for Bezier
float3 b0 = lerp(p0, p1, t); // Lerp between p0 and p1
float3 b1 = lerp(p1, p2, t); // Lerp between p1 and p2
float3 mappedValue = lerp(b0, b1, t); // Final lerp for Bezier
mappedValue = min(mappedValue, ST2084); // If HDR scene max luminance is too close to shoulders, then it could end up producing a higher value than the ST.2084 curve,
// which will saturate colors, i.e. the opposite of what HDR display mapping should do, therefore always take minimum of the two
@ -206,8 +206,8 @@ float3 ExpandColorGamut(float3 color, float start, float stop)
// Interpolate between Rec.709 and P3-D65, but only for bright HDR values, we don't want to change the overall look of the image
float lum = max(max(color.r, color.g), color.b);
float lerp = saturate((lum - start) / (stop - start));
float3 expandedColorInP3 = ((1.0f - lerp) * Rec709) + (lerp * P3);
float t = saturate((lum - start) / (stop - start));
float3 expandedColorInP3 = lerp(Rec709, P3, t);
return expandedColorInP3;
}

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1483,7 +1483,7 @@ X3DAUDIO_HANDLE& AudioEngine::Get3DHandle() const noexcept
#ifdef _MSC_VER
#pragma comment(lib,"runtimeobject.lib")
#pragma warning(push)
#pragma warning(disable: 4471 5204 5256)
#pragma warning(disable: 4471 5204 5256 6553)
#endif
#ifdef __clang__
#pragma clang diagnostic ignored "-Wnonportable-system-include-path"

Просмотреть файл

@ -644,12 +644,12 @@ void DirectX::CreateXMA2(
throw std::invalid_argument("XMA2WAVEFORMATEX");
}
int blockAlign = (channels * XMA_OUTPUT_SAMPLE_BITS) / 8;
unsigned int blockAlign = (static_cast<unsigned int>(channels) * XMA_OUTPUT_SAMPLE_BITS) / 8u;
wfx->wFormatTag = WAVE_FORMAT_XMA2;
wfx->nChannels = static_cast<WORD>(channels);
wfx->nSamplesPerSec = static_cast<WORD>(sampleRate);
wfx->nAvgBytesPerSec = static_cast<DWORD>(blockAlign * sampleRate);
wfx->nAvgBytesPerSec = static_cast<DWORD>(blockAlign * static_cast<unsigned int>(sampleRate));
wfx->nBlockAlign = static_cast<WORD>(blockAlign);
wfx->wBitsPerSample = XMA_OUTPUT_SAMPLE_BITS;
wfx->cbSize = sizeof(XMA2WAVEFORMATEX) - sizeof(WAVEFORMATEX);

Просмотреть файл

@ -73,7 +73,6 @@ namespace DirectX
size_t count,
size_t stride,
_COM_Outptr_ ID3D12Resource** pBuffer,
D3D12_RESOURCE_STATES initialState = D3D12_RESOURCE_STATE_GENERIC_READ,
D3D12_RESOURCE_FLAGS resFlags = D3D12_RESOURCE_FLAG_NONE) noexcept;
template<typename T>
@ -81,21 +80,19 @@ namespace DirectX
_In_reads_(count) T const* data,
size_t count,
_COM_Outptr_ ID3D12Resource** pBuffer,
D3D12_RESOURCE_STATES initialState = D3D12_RESOURCE_STATE_GENERIC_READ,
D3D12_RESOURCE_FLAGS resFlags = D3D12_RESOURCE_FLAG_NONE) noexcept
{
return CreateUploadBuffer(device, data, count, sizeof(T), pBuffer, initialState, resFlags);
return CreateUploadBuffer(device, data, count, sizeof(T), pBuffer, resFlags);
}
template<typename T>
HRESULT CreateUploadBuffer(_In_ ID3D12Device* device,
T const& data,
_COM_Outptr_ ID3D12Resource** pBuffer,
D3D12_RESOURCE_STATES initialState = D3D12_RESOURCE_STATE_GENERIC_READ,
D3D12_RESOURCE_FLAGS resFlags = D3D12_RESOURCE_FLAG_NONE) noexcept
{
return CreateUploadBuffer(device, data.data(), data.size(), sizeof(typename T::value_type),
pBuffer, initialState, resFlags);
pBuffer, resFlags);
}
// Helpers for creating texture from memory arrays.

Просмотреть файл

@ -6,7 +6,7 @@ http://go.microsoft.com/fwlink/?LinkID=615561
Copyright (c) Microsoft Corporation.
**February 21, 2024**
**June 4, 2024**
This package contains the "DirectX Tool Kit", a collection of helper classes for writing Direct3D 12 C++ code for Universal Windows Platform (UWP) apps for Windows 11 and Windows 10, game titles for Xbox Series X\|S and Xbox One, and Win32 desktop applications for Windows 11 and Windows 10.
@ -84,11 +84,17 @@ For the latest version of DirectXTK12, bug reports, etc. please visit the projec
## Release Notes
FOR SECURITY ADVISORIES, see [GitHub](https://github.com/microsoft/DirectXTK12/security/advisories).
For a full change history, see [CHANGELOG.md](https://github.com/microsoft/DirectXTK12/blob/main/CHANGELOG.md).
* In the June 2024 release, the defaulted parameter `initialState` for the ``CreateUploadBuffer`` function in *BufferHelpers* was removed. Per the DirectX 12 validation layer, the only valid initial state for an upload buffer is ``D3D12_RESOURCE_STATE_GENERIC_READ``.
* Starting with the February 2023 release, the Mouse class implementation of relative mouse movement was updated to accumulate changes between calls to ``GetState``. By default, each time you call ``GetState`` the deltas are reset which works for scenarios where you use relative movement but only call the method once per frame. If you call it more than once per frame, then add an explicit call to ``EndOfInputFrame`` to use an explicit reset model instead.
* As of the September 2022 release, the library makes use of C++11 inline namespaces for differing types that have the same names in the DirectX 11 and DirectX 12 version of the *DirectX Tool Kit*. This provides a link-unique name such as ``DirectX::DX12::SpriteBatch`` that will appear in linker output messages. In most use cases, however, there is no need to add explicit ``DX12`` namespace resolution in client code.
* In the June 2021 release or later, the VS 2019 projects of this library build the HLSL shaders with Shader Model 6 via DXC. Since the NuGet still builds using VS 2017, the build-in shaders in that version are currently Shader Model 5.1. See [this wiki page](https://github.com/microsoft/DirectXTK12/wiki/Shader-Model-6) for more information. The Microsoft GDK projects always use Shader Model 6.
* Starting with the June 2021 release, this library builds the HLSL shaders with Shader Model 6 via DXC. See [this wiki page](https://github.com/microsoft/DirectXTK12/wiki/Shader-Model-6) for more information. The Microsoft GDK projects have always used Shader Model 6.
* Starting with the June 2020 release, this library makes use of [typed enum bitmask flags](https://walbourn.github.io/modern-c++-bitmask-types/) per the recommendation of the _C++ Standard_ section *17.5.2.1.3 Bitmask types*. This may have *breaking change* impacts to client code:
@ -114,6 +120,8 @@ This project welcomes contributions and suggestions. Most contributions require
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
Tests for new features should also be submitted as a PR to the [Test Suite](https://github.com/walbourn/directxtk12test/wiki) repository.
## Code of Conduct
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more informatsion see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.

Просмотреть файл

@ -140,7 +140,6 @@ HRESULT DirectX::CreateUploadBuffer(
size_t count,
size_t stride,
ID3D12Resource** pBuffer,
D3D12_RESOURCE_STATES initialState,
D3D12_RESOURCE_FLAGS resFlags) noexcept
{
if (!pBuffer)
@ -170,7 +169,7 @@ HRESULT DirectX::CreateUploadBuffer(
&heapProperties,
D3D12_HEAP_FLAG_NONE,
&desc,
initialState,
D3D12_RESOURCE_STATE_GENERIC_READ,
nullptr,
IID_GRAPHICS_PPV_ARGS(res.GetAddressOf()));
if (FAILED(hr))

Просмотреть файл

@ -422,7 +422,7 @@ bool GamePad::GetDevice(int player, _Outptr_ IGameInputDevice * *device) noexcep
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable : 4471 5204 5256)
#pragma warning(disable : 4471 5204 5256 6553)
#endif
#include <windows.gaming.input.h>
#ifdef _MSC_VER

Просмотреть файл

@ -443,7 +443,7 @@ namespace DirectX
{
inline namespace DX12
{
namespace Internal
namespace ToolKitInternal
{
extern IWICImagingFactory2* GetWIC() noexcept;
}
@ -462,7 +462,7 @@ HRESULT DirectX::SaveWICTextureToFile(
std::function<void(IPropertyBag2*)> setCustomProps,
bool forceSRGB)
{
using namespace DirectX::DX12::Internal;
using namespace DirectX::DX12::ToolKitInternal;
if (!fileName)
return E_INVALIDARG;

Просмотреть файл

@ -18,7 +18,7 @@ exit /b
:continuexbox
set XBOXPREFIX=XboxOne
set XBOXOPTS=/D__XBOX_DISABLE_SHADER_NAME_EMPLACEMENT
set XBOXOPTS=/D__XBOX_DISABLE_SHADER_NAME_EMPLACEMENT /D__XBOX_PER_THREAD_SCRATCH_SIZE_LIMIT_IN_BYTES=0
if NOT %2.==noprecompile. goto skipnoprecompile
set XBOXOPTS=%XBOXOPTS% /D__XBOX_DISABLE_PRECOMPILE=1
:skipnoprecompile
@ -34,6 +34,7 @@ if not exist %XBOXFXC% goto needxdk
goto continue
:continuegxdk
set XBOXOPTS=/D__XBOX_PER_THREAD_SCRATCH_SIZE_LIMIT_IN_BYTES=0
if %2.==scarlett. (
set XBOXPREFIX=XboxGamingScarlett
set XBOXDXC="%GameDKLatest%\GXDK\bin\Scarlett\DXC.exe"
@ -334,14 +335,14 @@ echo %fxc%
exit /b
:CompileShadergxdk
set dxc=%XBOXDXC% "%1.fx" %FXCOPTS% -HV 2021 /T%2_6_0 /E%3 "/Fh%CompileShadersOutput%\%XBOXPREFIX%%1_%3.inc" "/Fd%CompileShadersOutput%\%XBOXPREFIX%%1_%3.pdb" /Vn%1_%3
set dxc=%XBOXDXC% "%1.fx" %FXCOPTS% -HV 2021 /T%2_6_0 %XBOXOPTS% /E%3 "/Fh%CompileShadersOutput%\%XBOXPREFIX%%1_%3.inc" "/Fd%CompileShadersOutput%\%XBOXPREFIX%%1_%3.pdb" /Vn%1_%3
echo.
echo %dxc%
%dxc% || set error=1
exit /b
:CompileComputeShadergxdk
set dxc=%XBOXDXC% "%1.hlsl" %FXCOPTS% -HV 2021 /Tcs_6_0 /E%2 "/Fh%CompileShadersOutput%\%XBOXPREFIX%%1_%2.inc" "/Fd%CompileShadersOutput%\%XBOXPREFIX%%1_%2.pdb" /Vn%1_%2
set dxc=%XBOXDXC% "%1.hlsl" %FXCOPTS% -HV 2021 /Tcs_6_0 %XBOXOPTS% /E%2 "/Fh%CompileShadersOutput%\%XBOXPREFIX%%1_%2.inc" "/Fd%CompileShadersOutput%\%XBOXPREFIX%%1_%2.pdb" /Vn%1_%2
echo.
echo %dxc%
%dxc% || set error=1

Просмотреть файл

@ -164,7 +164,7 @@ namespace DirectX
{
inline namespace DX12
{
namespace Internal
namespace ToolKitInternal
{
IWICImagingFactory2* GetWIC() noexcept;
// Also used by ScreenGrab
@ -172,7 +172,7 @@ namespace DirectX
}
}
IWICImagingFactory2* DirectX::DX12::Internal::GetWIC() noexcept
IWICImagingFactory2* DirectX::DX12::ToolKitInternal::GetWIC() noexcept
{
static INIT_ONCE s_initOnce = INIT_ONCE_STATIC_INIT;
@ -189,7 +189,7 @@ IWICImagingFactory2* DirectX::DX12::Internal::GetWIC() noexcept
return factory;
}
using namespace DirectX::DX12::Internal;
using namespace DirectX::DX12::ToolKitInternal;
namespace
{

Просмотреть файл

@ -289,18 +289,6 @@ namespace
auto xboxext = reinterpret_cast<const DDS_HEADER_XBOX*>(reinterpret_cast<const uint8_t*>(header) + sizeof(DDS_HEADER));
#if !defined(NDEBUG) && defined(_GXDK_VER)
if (xboxext->xdkVer < _GXDK_VER)
{
OutputDebugStringA("WARNING: DDS XBOX file may be outdated and need regeneration\n");
}
#elif !defined(NDEBUG) && defined(_XDK_VER)
if (xboxext->xdkVer < _XDK_VER)
{
OutputDebugStringA("WARNING: DDS XBOX file may be outdated and need regeneration\n");
}
#endif
uint32_t arraySize = xboxext->arraySize;
if (arraySize == 0)
{

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -238,7 +238,7 @@
#endif
#pragma warning(push)
#pragma warning(disable : 4467 5038 5204 5220)
#pragma warning(disable : 4467 4986 5038 5204 5220 6101)
#ifdef __MINGW32__
#include <wrl/client.h>
#else

Просмотреть файл

@ -47,7 +47,7 @@ struct IWICImagingFactory;
struct IWICMetadataQueryReader;
#endif
#define DIRECTX_TEX_VERSION 203
#define DIRECTX_TEX_VERSION 204
namespace DirectX

Просмотреть файл

@ -163,7 +163,8 @@ namespace
formatFound = true;
const size_t len = FindEOL(info, size);
if (len == size_t(-1))
if (len == size_t(-1)
|| len < 1)
{
return E_FAIL;
}
@ -207,7 +208,8 @@ namespace
else
{
const size_t len = FindEOL(info, size);
if (len == size_t(-1))
if (len == size_t(-1)
|| len < 1)
{
return E_FAIL;
}

Просмотреть файл

@ -71,7 +71,7 @@ namespace
_In_ IWICBitmap* src,
_In_ TEX_FILTER_FLAGS filter,
_In_ const WICPixelFormatGUID& desiredPixelFormat,
_COM_Outptr_ IWICBitmap** dest) noexcept
__RPC__deref_out_opt /* needed to match WIC annotation */ IWICBitmap** dest) noexcept
{
if (!dest)
return E_POINTER;

Просмотреть файл

@ -27,6 +27,10 @@ static_assert(WIN10_DXGI_FORMAT_V208 == DXGI_FORMAT_V208, "Windows SDK mismatch
static_assert(WIN10_DXGI_FORMAT_V408 == DXGI_FORMAT_V408, "Windows SDK mismatch detected");
#endif
#if defined(NTDDI_WIN11_GE) && !defined(_GAMING_XBOX)
static_assert(WIN11_DXGI_FORMAT_A4B4G4R4_UNORM == DXGI_FORMAT_A4B4G4R4_UNORM, "Windows SDK mismatch detected");
#endif
using namespace DirectX;
using Microsoft::WRL::ComPtr;

Просмотреть файл

@ -128,18 +128,6 @@ namespace
auto xboxext = reinterpret_cast<const DDS_HEADER_XBOX*>(
reinterpret_cast<const uint8_t*>(pSource) + sizeof(uint32_t) + sizeof(DDS_HEADER));
#ifdef _GXDK_VER
if (xboxext->xdkVer < _GXDK_VER)
{
OutputDebugStringA("WARNING: DDS XBOX file may be outdated and need regeneration\n");
}
#elif defined(_XDK_VER)
if (xboxext->xdkVer < _XDK_VER)
{
OutputDebugStringA("WARNING: DDS XBOX file may be outdated and need regeneration\n");
}
#endif
metadata.arraySize = xboxext->arraySize;
if (metadata.arraySize == 0)
{

Просмотреть файл

@ -6,7 +6,7 @@ http://go.microsoft.com/fwlink/?LinkId=248926
Copyright (c) Microsoft Corporation.
**March 6, 2024**
**June 4, 2024**
This package contains DirectXTex, a shared source library for reading and writing ``.DDS`` files, and performing various texture content processing operations including resizing, format conversion, mip-map generation, block compression for Direct3D runtime texture resources, and height-map to normal-map conversion. This library makes use of the Windows Image Component (WIC) APIs. It also includes ``.TGA`` and ``.HDR`` readers and writers since these image file formats are commonly used for texture content processing pipelines, but are not currently supported by a built-in WIC codec.
@ -76,6 +76,10 @@ For the latest version of DirectXTex, bug reports, etc. please visit the project
## Release Notes
FOR SECURITY ADVISORIES, see [GitHub](https://github.com/microsoft/DirectXTex/security/advisories).
For a full change history, see [CHANGELOG.md](https://github.com/microsoft/DirectXTex/blob/main/CHANGELOG.md).
* Starting with the July 2022 release, the ``bool forceSRGB`` parameter for the CreateTextureEx and CreateShaderResourceViewEx functions is now a ``CREATETEX_FLAGS`` typed enum bitmask flag parameter. This may have a *breaking change* impact to client code. Replace ``true`` with ``CREATETEX_FORCE_SRGB`` and ``false`` with ``CREATETEX_DEFAULT``.
* Starting with the June 2020 release, this library makes use of typed enum bitmask flags per the recommendation of the _C++ Standard_ section *17.5.2.1.3 Bitmask types*. This is consistent with Direct3D 12's use of the ``DEFINE_ENUM_FLAG_OPERATORS`` macro. This may have *breaking change* impacts to client code:
@ -106,6 +110,8 @@ This project welcomes contributions and suggestions. Most contributions require
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
Tests for new features should also be submitted as a PR to the [Test Suite](https://github.com/walbourn/directxtextest/wiki) repository.
## Code of Conduct
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -220,21 +220,21 @@ void LiveInfoHUD::Render(ID3D12GraphicsCommandList *commandList)
DirectX::XMMatrixAffineTransformation2D(XMVectorSet(m_scaleWidth, m_scaleHeight, 0, 0), XMVectorZero(), 0.f, XMVectorZero())
);
m_titleFont->DrawString(m_batch.get(), m_sampleTitle.c_str(), XMFLOAT2(60.f, c_HeaderBarCoordinate), ATG::Colors::OffWhite, 0.0f);
m_titleFont->DrawString(m_batch.get(), m_sampleTitle.c_str(), XMFLOAT2(60.f, c_HeaderBarCoordinate), ATG::Colors::White, 0.0f);
m_boldFont->DrawString(m_batch.get(), "Sandbox Id:", XMFLOAT2(270.f, c_StatusBarCoordinate), ATG::Colors::OffWhite, 0.0f);
m_smallFont->DrawString(m_batch.get(), m_sandboxId.c_str(), XMFLOAT2(410.f, c_StatusBarCoordinate), ATG::Colors::OffWhite, 0.0f);
m_boldFont->DrawString(m_batch.get(), "Sandbox Id:", XMFLOAT2(270.f, c_StatusBarCoordinate), ATG::Colors::White, 0.0f);
m_smallFont->DrawString(m_batch.get(), m_sandboxId.c_str(), XMFLOAT2(410.f, c_StatusBarCoordinate), ATG::Colors::White, 0.0f);
m_boldFont->DrawString(m_batch.get(), "Title Id:", XMFLOAT2(590.f, c_StatusBarCoordinate), ATG::Colors::OffWhite, 0.0f);
m_smallFont->DrawString(m_batch.get(), m_titleId.c_str(), XMFLOAT2(680.f, c_StatusBarCoordinate), ATG::Colors::OffWhite, 0.0f);
m_boldFont->DrawString(m_batch.get(), "Title Id:", XMFLOAT2(590.f, c_StatusBarCoordinate), ATG::Colors::White, 0.0f);
m_smallFont->DrawString(m_batch.get(), m_titleId.c_str(), XMFLOAT2(680.f, c_StatusBarCoordinate), ATG::Colors::White, 0.0f);
m_boldFont->DrawString(m_batch.get(), "Service Config Id:", XMFLOAT2(950.f, c_StatusBarCoordinate), ATG::Colors::OffWhite, 0.0f);
m_smallFont->DrawString(m_batch.get(), m_serviceConfigId.c_str(), XMFLOAT2(1155.f, c_StatusBarCoordinate), ATG::Colors::OffWhite, 0.0f);
m_boldFont->DrawString(m_batch.get(), "Service Config Id:", XMFLOAT2(950.f, c_StatusBarCoordinate), ATG::Colors::White, 0.0f);
m_smallFont->DrawString(m_batch.get(), m_serviceConfigId.c_str(), XMFLOAT2(1155.f, c_StatusBarCoordinate), ATG::Colors::White, 0.0f);
auto pos = XMFLOAT2(1770.f, c_HeaderBarCoordinate + 26.0f);
pos.x -= XMVectorGetX(m_smallFont->MeasureString(m_gamerTag.c_str()));
m_smallFont->DrawString(m_batch.get(), m_gamerTag.c_str(), pos, ATG::Colors::OffWhite, 0.0f);
m_smallFont->DrawString(m_batch.get(), m_gamerTag.c_str(), pos, ATG::Colors::White, 0.0f);
static const RECT gamerPicRect = { 1780, c_GamerPicCoordinate, 1780 + 64, c_GamerPicCoordinate + 64 };

Просмотреть файл

@ -871,12 +871,12 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" />
<Import Project="..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets'))" />
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="WinPixEventRuntime" version="1.0.231030001" targetFramework="native" />
<package id="WinPixEventRuntime" version="1.0.240308001" targetFramework="native" />
</packages>

Просмотреть файл

@ -469,12 +469,12 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" />
<Import Project="..\..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets'))" />
<Error Condition="!Exists('..\..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="WinPixEventRuntime" version="1.0.231030001" targetFramework="native" />
<package id="WinPixEventRuntime" version="1.0.240308001" targetFramework="native" />
</packages>

Просмотреть файл

@ -656,6 +656,7 @@ void Sample::CreateDeviceDependentResources()
psoDesc.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC(D3D12_DEFAULT); // Less-equal depth test w/ writes; no stencil
psoDesc.SampleMask = UINT_MAX;
psoDesc.SampleDesc = DefaultSampleDesc();
psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE;
auto meshStreamDesc = CD3DX12_PIPELINE_MESH_STATE_STREAM(psoDesc);

Просмотреть файл

@ -582,12 +582,12 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" />
<Import Project="..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets'))" />
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="WinPixEventRuntime" version="1.0.231030001" targetFramework="native" />
<package id="WinPixEventRuntime" version="1.0.240308001" targetFramework="native" />
</packages>

Просмотреть файл

@ -417,12 +417,12 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" />
<Import Project="..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets'))" />
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -245,6 +245,7 @@ void ParticleSystem::ReloadPipelineState(DX::DeviceResources& deviceResources)
psoDesc.DepthStencilState = CommonStates::DepthRead;
psoDesc.SampleMask = UINT_MAX;
psoDesc.SampleDesc = DefaultSampleDesc();
psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE;
auto meshStreamDesc = CD3DX12_PIPELINE_MESH_STATE_STREAM(psoDesc);

Просмотреть файл

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="WinPixEventRuntime" version="1.0.231030001" targetFramework="native" />
<package id="WinPixEventRuntime" version="1.0.240308001" targetFramework="native" />
</packages>

Просмотреть файл

@ -181,7 +181,7 @@ void Sample::Update(DX::StepTimer const& timer)
m_bShowOnlyPaperWhite = false;
}
auto gamepad = m_gamePad->GetState(0);
auto gamepad = m_gamePad->GetState(DirectX::GamePad::c_MergedInput);
if (gamepad.IsConnected())
{

Просмотреть файл

@ -56,6 +56,7 @@ void DrawCullDataEffect::CreateDeviceResources(DeviceResources& deviceResources)
// Cone lines are drawn opaquely
psoDesc.MS = { normalConeMs.data(), normalConeMs.size() };
psoDesc.BlendState = CD3DX12_BLEND_DESC(D3D12_DEFAULT); // Opaque
psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE;
auto meshStreamDesc = CD3DX12_PIPELINE_MESH_STATE_STREAM(psoDesc);
@ -81,6 +82,7 @@ void DrawCullDataEffect::CreateDeviceResources(DeviceResources& deviceResources)
psoDesc.MS = { boundingSphereMs.data(), boundingSphereMs.size() };
psoDesc.BlendState = blendDesc;
psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE;
auto meshStreamDesc = CD3DX12_PIPELINE_MESH_STATE_STREAM(psoDesc);

Просмотреть файл

@ -40,6 +40,7 @@ void DrawFrustumEffect::CreateDeviceResources(DeviceResources& deviceResources)
psoDesc.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC(D3D12_DEFAULT); // Less-equal depth test w/ writes; no stencil
psoDesc.SampleMask = UINT_MAX;
psoDesc.SampleDesc = DefaultSampleDesc();
psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE;
auto meshStreamDesc = CD3DX12_PIPELINE_MESH_STATE_STREAM(psoDesc);

Просмотреть файл

@ -809,6 +809,7 @@ void Sample::CreateDeviceDependentResources()
psoDesc.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC(D3D12_DEFAULT); // Less-equal depth test w/ writes; no stencil
psoDesc.SampleMask = UINT_MAX;
psoDesc.SampleDesc = DefaultSampleDesc();
psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE;
auto meshStreamDesc = CD3DX12_PIPELINE_MESH_STATE_STREAM(psoDesc);

Просмотреть файл

@ -720,12 +720,12 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" />
<Import Project="..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets'))" />
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="WinPixEventRuntime" version="1.0.231030001" targetFramework="native" />
<package id="WinPixEventRuntime" version="1.0.240308001" targetFramework="native" />
</packages>

Просмотреть файл

@ -590,6 +590,7 @@ void Sample::CreateDeviceDependentResources()
psoDesc.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC(D3D12_DEFAULT); // Less-equal depth test w/ writes; no stencil
psoDesc.SampleMask = UINT_MAX;
psoDesc.SampleDesc = DefaultSampleDesc();
psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE;
auto meshStreamDesc = CD3DX12_PIPELINE_MESH_STATE_STREAM(psoDesc);

Просмотреть файл

@ -567,12 +567,12 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" />
<Import Project="..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets'))" />
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="WinPixEventRuntime" version="1.0.231030001" targetFramework="native" />
<package id="WinPixEventRuntime" version="1.0.240308001" targetFramework="native" />
</packages>

Просмотреть файл

@ -48,6 +48,7 @@ void DrawFrustumEffect::CreateDeviceResources(DeviceResources& deviceResources,
psoDesc.DepthStencilState = commonStates.DepthDefault;
psoDesc.SampleMask = UINT_MAX;
psoDesc.SampleDesc = DefaultSampleDesc();
psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE;
auto meshStreamDesc = CD3DX12_PIPELINE_MESH_STATE_STREAM(psoDesc);

Просмотреть файл

@ -604,6 +604,7 @@ void Sample::CreateDeviceDependentResources()
psoDesc.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC(D3D12_DEFAULT); // Less-equal depth test w/ writes; no stencil
psoDesc.SampleMask = UINT_MAX;
psoDesc.SampleDesc = DefaultSampleDesc();
psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE;
auto meshStreamDesc = CD3DX12_PIPELINE_MESH_STATE_STREAM(psoDesc);

Просмотреть файл

@ -545,12 +545,12 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" />
<Import Project="..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets'))" />
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="WinPixEventRuntime" version="1.0.231030001" targetFramework="native" />
<package id="WinPixEventRuntime" version="1.0.240308001" targetFramework="native" />
</packages>

Просмотреть файл

@ -687,7 +687,7 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" />
<Import Project="..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" />
</ImportGroup>
<Target Name="ATGEnsureDir" BeforeTargets="PrepareForBuild">
<MakeDir Directories="$(IntDir)Compiled" />
@ -696,6 +696,6 @@
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets'))" />
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="WinPixEventRuntime" version="1.0.231030001" targetFramework="native" />
<package id="WinPixEventRuntime" version="1.0.240308001" targetFramework="native" />
</packages>

Просмотреть файл

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.18\build\native\Microsoft.Direct3D.DXC.props" Condition="Exists('..\..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.18\build\native\Microsoft.Direct3D.DXC.props')" />
<Import Project="..\..\..\packages\Microsoft.Direct3D.D3D12.1.613.0\build\native\Microsoft.Direct3D.D3D12.props" Condition="Exists('..\..\..\packages\Microsoft.Direct3D.D3D12.1.613.0\build\native\Microsoft.Direct3D.D3D12.props')" />
<Import Project="..\..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.24\build\native\Microsoft.Direct3D.DXC.props" Condition="Exists('..\..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.24\build\native\Microsoft.Direct3D.DXC.props')" />
<Import Project="..\..\..\packages\Microsoft.Direct3D.D3D12.1.613.3\build\native\Microsoft.Direct3D.D3D12.props" Condition="Exists('..\..\..\packages\Microsoft.Direct3D.D3D12.1.613.3\build\native\Microsoft.Direct3D.D3D12.props')" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Gaming.Xbox.Scarlett.x64">
<Configuration>Debug</Configuration>
@ -127,9 +127,9 @@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
<Import Project="..\..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" />
<Import Project="..\..\..\packages\Microsoft.Direct3D.D3D12.1.613.0\build\native\Microsoft.Direct3D.D3D12.targets" Condition="Exists('..\..\..\packages\Microsoft.Direct3D.D3D12.1.613.0\build\native\Microsoft.Direct3D.D3D12.targets')" />
<Import Project="..\..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.18\build\native\Microsoft.Direct3D.DXC.targets" Condition="Exists('..\..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.18\build\native\Microsoft.Direct3D.DXC.targets')" />
<Import Project="..\..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" />
<Import Project="..\..\..\packages\Microsoft.Direct3D.D3D12.1.613.3\build\native\Microsoft.Direct3D.D3D12.targets" Condition="Exists('..\..\..\packages\Microsoft.Direct3D.D3D12.1.613.3\build\native\Microsoft.Direct3D.D3D12.targets')" />
<Import Project="..\..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.24\build\native\Microsoft.Direct3D.DXC.targets" Condition="Exists('..\..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.24\build\native\Microsoft.Direct3D.DXC.targets')" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Gaming.Xbox.XboxOne.x64'" Label="PropertySheets">
@ -806,10 +806,10 @@
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets'))" />
<Error Condition="!Exists('..\..\..\packages\Microsoft.Direct3D.D3D12.1.613.0\build\native\Microsoft.Direct3D.D3D12.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Microsoft.Direct3D.D3D12.1.613.0\build\native\Microsoft.Direct3D.D3D12.props'))" />
<Error Condition="!Exists('..\..\..\packages\Microsoft.Direct3D.D3D12.1.613.0\build\native\Microsoft.Direct3D.D3D12.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Microsoft.Direct3D.D3D12.1.613.0\build\native\Microsoft.Direct3D.D3D12.targets'))" />
<Error Condition="!Exists('..\..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.18\build\native\Microsoft.Direct3D.DXC.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.18\build\native\Microsoft.Direct3D.DXC.props'))" />
<Error Condition="!Exists('..\..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.18\build\native\Microsoft.Direct3D.DXC.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.18\build\native\Microsoft.Direct3D.DXC.targets'))" />
<Error Condition="!Exists('..\..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets'))" />
<Error Condition="!Exists('..\..\..\packages\Microsoft.Direct3D.D3D12.1.613.3\build\native\Microsoft.Direct3D.D3D12.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Microsoft.Direct3D.D3D12.1.613.3\build\native\Microsoft.Direct3D.D3D12.props'))" />
<Error Condition="!Exists('..\..\..\packages\Microsoft.Direct3D.D3D12.1.613.3\build\native\Microsoft.Direct3D.D3D12.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Microsoft.Direct3D.D3D12.1.613.3\build\native\Microsoft.Direct3D.D3D12.targets'))" />
<Error Condition="!Exists('..\..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.24\build\native\Microsoft.Direct3D.DXC.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.24\build\native\Microsoft.Direct3D.DXC.props'))" />
<Error Condition="!Exists('..\..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.24\build\native\Microsoft.Direct3D.DXC.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.24\build\native\Microsoft.Direct3D.DXC.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Direct3D.D3D12" version="1.613.0" targetFramework="native" />
<package id="Microsoft.Direct3D.DXC" version="1.8.2403.18" targetFramework="native" />
<package id="WinPixEventRuntime" version="1.0.231030001" targetFramework="native" />
<package id="Microsoft.Direct3D.D3D12" version="1.613.3" targetFramework="native" />
<package id="Microsoft.Direct3D.DXC" version="1.8.2403.24" targetFramework="native" />
<package id="WinPixEventRuntime" version="1.0.240308001" targetFramework="native" />
</packages>

Просмотреть файл

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.18\build\native\Microsoft.Direct3D.DXC.props" Condition="Exists('..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.18\build\native\Microsoft.Direct3D.DXC.props')" />
<Import Project="..\..\packages\Microsoft.Direct3D.D3D12.1.613.0\build\native\Microsoft.Direct3D.D3D12.props" Condition="Exists('..\..\packages\Microsoft.Direct3D.D3D12.1.613.0\build\native\Microsoft.Direct3D.D3D12.props')" />
<Import Project="..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.24\build\native\Microsoft.Direct3D.DXC.props" Condition="Exists('..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.24\build\native\Microsoft.Direct3D.DXC.props')" />
<Import Project="..\..\packages\Microsoft.Direct3D.D3D12.1.613.3\build\native\Microsoft.Direct3D.D3D12.props" Condition="Exists('..\..\packages\Microsoft.Direct3D.D3D12.1.613.3\build\native\Microsoft.Direct3D.D3D12.props')" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Gaming.Xbox.Scarlett.x64">
<Configuration>Debug</Configuration>
@ -600,9 +600,9 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" />
<Import Project="..\..\packages\Microsoft.Direct3D.D3D12.1.613.0\build\native\Microsoft.Direct3D.D3D12.targets" Condition="Exists('..\..\packages\Microsoft.Direct3D.D3D12.1.613.0\build\native\Microsoft.Direct3D.D3D12.targets')" />
<Import Project="..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.18\build\native\Microsoft.Direct3D.DXC.targets" Condition="Exists('..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.18\build\native\Microsoft.Direct3D.DXC.targets')" />
<Import Project="..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" />
<Import Project="..\..\packages\Microsoft.Direct3D.D3D12.1.613.3\build\native\Microsoft.Direct3D.D3D12.targets" Condition="Exists('..\..\packages\Microsoft.Direct3D.D3D12.1.613.3\build\native\Microsoft.Direct3D.D3D12.targets')" />
<Import Project="..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.24\build\native\Microsoft.Direct3D.DXC.targets" Condition="Exists('..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.24\build\native\Microsoft.Direct3D.DXC.targets')" />
</ImportGroup>
<Target Name="EnsureGDK" BeforeTargets="_CheckForInvalidConfigurationAndPlatform" Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('$(Platform)', 'Gaming\..+\.x64'))">
<PropertyGroup>
@ -615,10 +615,10 @@
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Direct3D.D3D12.1.613.0\build\native\Microsoft.Direct3D.D3D12.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Direct3D.D3D12.1.613.0\build\native\Microsoft.Direct3D.D3D12.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Direct3D.D3D12.1.613.0\build\native\Microsoft.Direct3D.D3D12.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Direct3D.D3D12.1.613.0\build\native\Microsoft.Direct3D.D3D12.targets'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.18\build\native\Microsoft.Direct3D.DXC.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.18\build\native\Microsoft.Direct3D.DXC.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.18\build\native\Microsoft.Direct3D.DXC.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.18\build\native\Microsoft.Direct3D.DXC.targets'))" />
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Direct3D.D3D12.1.613.3\build\native\Microsoft.Direct3D.D3D12.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Direct3D.D3D12.1.613.3\build\native\Microsoft.Direct3D.D3D12.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Direct3D.D3D12.1.613.3\build\native\Microsoft.Direct3D.D3D12.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Direct3D.D3D12.1.613.3\build\native\Microsoft.Direct3D.D3D12.targets'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.24\build\native\Microsoft.Direct3D.DXC.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.24\build\native\Microsoft.Direct3D.DXC.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.24\build\native\Microsoft.Direct3D.DXC.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Direct3D.DXC.1.8.2403.24\build\native\Microsoft.Direct3D.DXC.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Direct3D.D3D12" version="1.613.0" targetFramework="native" />
<package id="Microsoft.Direct3D.DXC" version="1.8.2403.18" targetFramework="native" />
<package id="WinPixEventRuntime" version="1.0.231030001" targetFramework="native" />
<package id="Microsoft.Direct3D.D3D12" version="1.613.3" targetFramework="native" />
<package id="Microsoft.Direct3D.DXC" version="1.8.2403.24" targetFramework="native" />
<package id="WinPixEventRuntime" version="1.0.240308001" targetFramework="native" />
</packages>

Просмотреть файл

@ -290,6 +290,7 @@ void Sample::CreateDeviceDependentResources()
psoDesc.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC(D3D12_DEFAULT); // Less-equal depth test w/ writes; no stencil
psoDesc.SampleMask = UINT_MAX;
psoDesc.SampleDesc = DefaultSampleDesc();
psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE;
auto meshStreamDesc = CD3DX12_PIPELINE_MESH_STATE_STREAM(psoDesc);

Просмотреть файл

@ -402,7 +402,7 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" />
<Import Project="..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" />
</ImportGroup>
<Target Name="EnsureGDK" BeforeTargets="_CheckForInvalidConfigurationAndPlatform" Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('$(Platform)', 'Gaming\..+\.x64'))">
<PropertyGroup>
@ -415,6 +415,6 @@
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets'))" />
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="WinPixEventRuntime" version="1.0.231030001" targetFramework="native" />
<package id="WinPixEventRuntime" version="1.0.240308001" targetFramework="native" />
</packages>

Просмотреть файл

@ -245,7 +245,7 @@ makepkg.exe localize /d "$(OutDir)" /pd "$(OutDir)" /gc "%(Identity)"</Command>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" />
<Import Project="..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets" Condition="Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" />
</ImportGroup>
<Target Name="GDKEditionCheck" BeforeTargets="PrepareForBuild">
<Error Condition="'$(GameDK)'==''" Text="GameDK property is required" />
@ -258,6 +258,6 @@ makepkg.exe localize /d "$(OutDir)" /pd "$(OutDir)" /gc "%(Identity)"</Command>
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.231030001\build\WinPixEventRuntime.targets'))" />
<Error Condition="!Exists('..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WinPixEventRuntime.1.0.240308001\build\WinPixEventRuntime.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="WinPixEventRuntime" version="1.0.231030001" targetFramework="native" />
<package id="WinPixEventRuntime" version="1.0.240308001" targetFramework="native" />
</packages>

Просмотреть файл

@ -196,9 +196,6 @@ void Sample::Update(DX::StepTimer const& timer)
}
}
auto mouse = m_mouse->GetState();
mouse;
m_liveInfoHUD->Update(m_deviceResources->GetCommandQueue());
m_inputState.Update(elapsedTime, *m_gamePad, *m_keyboard, *m_mouse);

Просмотреть файл

@ -198,9 +198,6 @@ void Sample::Update(DX::StepTimer const& timer)
}
}
auto mouse = m_mouse->GetState();
mouse;
m_liveInfoHUD->Update(m_deviceResources->GetCommandQueue());
m_inputState.Update(elapsedTime, *m_gamePad, *m_keyboard, *m_mouse);

Просмотреть файл

@ -233,7 +233,7 @@
"id": "MenuFocusedButtonStyle",
"inheritsFromId": "BasicButtonStyle",
"classId": "SpriteStyle",
"color": [ 255, 255, 0, 1.0 ]
"color": [ 136, 0, 21, 1.0 ]
},
{
"id": "MenuHoveredButtonStyle",

Просмотреть файл

@ -220,7 +220,7 @@ void Sample::RefreshUserList()
auto profilePicsToGet = std::vector<uint64_t>();
for (unsigned x = 0; x < c_listSize; x++)
{
if (x < static_cast<int>(count))
if (x < count)
{
auto userXuid = m_userList[x]->xboxUserId;
users.push_back(std::make_shared<UserListItem>(m_userList[x]));

Просмотреть файл

@ -1,5 +1,5 @@
//--------------------------------------------------------------------------------------
// GlyphCacheCombo.cpp
// ModernGamerTag.cpp
//
// Advanced Technology Group (ATG)
// Copyright (C) Microsoft Corporation. All rights reserved.

Просмотреть файл

@ -1,5 +1,5 @@
//--------------------------------------------------------------------------------------
// GlyphCacheCombo.h
// ModernGamerTag.h
//
// Advanced Technology Group (ATG)
// Copyright (C) Microsoft Corporation. All rights reserved.

Просмотреть файл

@ -36,6 +36,7 @@
<TargetRuntime>Native</TargetRuntime>
<GDKExtLibNames>Xbox.Services.API.C</GDKExtLibNames>
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Condition="Exists($(ATGBuildProps))" Project="$(ATGBuildProps)" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
@ -88,7 +89,7 @@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
<Import Project="..\..\packages\Microsoft.Direct3D.DirectStorage.1.1.1\build\native\targets\Microsoft.Direct3D.DirectStorage.targets" Condition="Exists('..\..\packages\Microsoft.Direct3D.DirectStorage.1.1.1\build\native\targets\Microsoft.Direct3D.DirectStorage.targets')" />
<Import Project="..\..\packages\Microsoft.Direct3D.DirectStorage.1.2.2\build\native\targets\Microsoft.Direct3D.DirectStorage.targets" Condition="Exists('..\..\packages\Microsoft.Direct3D.DirectStorage.1.2.2\build\native\targets\Microsoft.Direct3D.DirectStorage.targets')" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Gaming.Xbox.Scarlett.x64'" Label="PropertySheets">
@ -538,6 +539,6 @@
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\Microsoft.Direct3D.DirectStorage.1.1.1\build\native\targets\Microsoft.Direct3D.DirectStorage.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Direct3D.DirectStorage.1.1.1\build\native\targets\Microsoft.Direct3D.DirectStorage.targets'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Direct3D.DirectStorage.1.2.2\build\native\targets\Microsoft.Direct3D.DirectStorage.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Direct3D.DirectStorage.1.2.2\build\native\targets\Microsoft.Direct3D.DirectStorage.targets'))" />
</Target>
</Project>
</Project>

Просмотреть файл

@ -248,11 +248,11 @@
<None Include="..\..\..\Media\Fonts\SegoeUI_18.spritefont">
<Filter>Assets</Filter>
</None>
<None Include="Readme.docx" />
<None Include="Readme_ja-JP.docx" />
<None Include="Readme_ko-KR.docx" />
<None Include="Readme_zh-CN.docx" />
<None Include="..\..\NuGet.config" />
<None Include="readme.md" />
<None Include="readme_ja-jp.md" />
<None Include="readme_ko-kr.md" />
<None Include="readme_zh-cn.md" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>

Просмотреть файл

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Direct3D.DirectStorage" version="1.1.1" targetFramework="native" />
<package id="Microsoft.Direct3D.DirectStorage" version="1.2.2" targetFramework="native" />
</packages>

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -162,10 +162,8 @@ message("CRT Platform Toolset = ${CRTPlatformToolset}")
set(CppRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/x64/Microsoft.VC${CRTPlatformToolset}.CRT")
set(OpenMPRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/x64/Microsoft.VC${CRTPlatformToolset}.OpenMP")
if(CMAKE_BUILD_TYPE MATCHES "Debug")
set(DebugCppRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/Debug_NonRedist/x64/Microsoft.VC${CRTPlatformToolset}.DebugCRT")
set(DebugOpenMPRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/Debug_NonRedist/x64/Microsoft.VC${CRTPlatformToolset}.DebugOpenMP")
endif()
set(DebugCppRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/Debug_NonRedist/x64/Microsoft.VC${CRTPlatformToolset}.DebugCRT")
set(DebugOpenMPRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/Debug_NonRedist/x64/Microsoft.VC${CRTPlatformToolset}.DebugOpenMP")
#--- Tools
find_program(MAKEPKG_TOOL makepkg.exe

Просмотреть файл

@ -162,10 +162,8 @@ message("CRT Platform Toolset = ${CRTPlatformToolset}")
set(CppRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/x64/Microsoft.VC${CRTPlatformToolset}.CRT")
set(OpenMPRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/x64/Microsoft.VC${CRTPlatformToolset}.OpenMP")
if(CMAKE_BUILD_TYPE MATCHES "Debug")
set(DebugCppRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/Debug_NonRedist/x64/Microsoft.VC${CRTPlatformToolset}.DebugCRT")
set(DebugOpenMPRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/Debug_NonRedist/x64/Microsoft.VC${CRTPlatformToolset}.DebugOpenMP")
endif()
set(DebugCppRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/Debug_NonRedist/x64/Microsoft.VC${CRTPlatformToolset}.DebugCRT")
set(DebugOpenMPRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/Debug_NonRedist/x64/Microsoft.VC${CRTPlatformToolset}.DebugOpenMP")
#--- Tools
find_program(MAKEPKG_TOOL makepkg.exe

Просмотреть файл

@ -63,55 +63,70 @@ endif()
set(Console_GRDKExtLibRoot "${Console_SdkRoot}/${XdkEditionTarget}/GRDK/ExtensionLibraries")
set(ExtensionPlatformToolset 142)
set(Console_GRDKExtIncludePath "DesignTime/CommonConfiguration/neutral/Include")
set(Console_GRDKExtLibPath "DesignTime/CommonConfiguration/neutral/Lib")
set(Console_GRDKExtDLLPath "Redist/CommonConfiguration/neutral")
# XCurl
add_library(Xbox::XCurl SHARED IMPORTED)
set_target_properties(Xbox::XCurl PROPERTIES
IMPORTED_LOCATION "${Console_GRDKExtLibRoot}/Xbox.XCurl.API/Redist/CommonConfiguration/neutral/XCurl.dll"
IMPORTED_IMPLIB "${Console_GRDKExtLibRoot}/Xbox.XCurl.API/DesignTime/CommonConfiguration/neutral/lib/XCurl.lib"
IMPORTED_LOCATION "${Console_GRDKExtLibRoot}/Xbox.XCurl.API/${Console_GRDKExtDLLPath}/XCurl.dll"
IMPORTED_IMPLIB "${Console_GRDKExtLibRoot}/Xbox.XCurl.API/${Console_GRDKExtLibPath}/XCurl.lib"
MAP_IMPORTED_CONFIG_MINSIZEREL ""
MAP_IMPORTED_CONFIG_RELWITHDEBINFO ""
INTERFACE_INCLUDE_DIRECTORIES "${Console_GRDKExtLibRoot}/Xbox.XCurl.API/DesignTime/CommonConfiguration/neutral/Include")
INTERFACE_INCLUDE_DIRECTORIES "${Console_GRDKExtLibRoot}/Xbox.XCurl.API/${Console_GRDKExtIncludePath}")
# Xbox.Services.API.C (requires XCurl)
add_library(Xbox::XSAPI STATIC IMPORTED)
set_target_properties(Xbox::XSAPI PROPERTIES
IMPORTED_LOCATION_RELEASE "${Console_GRDKExtLibRoot}/Xbox.Services.API.C/DesignTime/CommonConfiguration/Neutral/Lib/Release/v${ExtensionPlatformToolset}/Microsoft.Xbox.Services.${ExtensionPlatformToolset}.GDK.C.lib"
IMPORTED_LOCATION_DEBUG "${Console_GRDKExtLibRoot}/Xbox.Services.API.C/DesignTime/CommonConfiguration/Neutral/Lib/Debug/v${ExtensionPlatformToolset}/Microsoft.Xbox.Services.${ExtensionPlatformToolset}.GDK.C.lib"
IMPORTED_LOCATION_RELEASE "${Console_GRDKExtLibRoot}/Xbox.Services.API.C/${Console_GRDKExtLibPath}/Release/v${ExtensionPlatformToolset}/Microsoft.Xbox.Services.${ExtensionPlatformToolset}.GDK.C.lib"
IMPORTED_LOCATION_DEBUG "${Console_GRDKExtLibRoot}/Xbox.Services.API.C/${Console_GRDKExtLibPath}/Debug/v${ExtensionPlatformToolset}/Microsoft.Xbox.Services.${ExtensionPlatformToolset}.GDK.C.lib"
IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
MAP_IMPORTED_CONFIG_MINSIZEREL Release
MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
INTERFACE_INCLUDE_DIRECTORIES "${Console_GRDKExtLibRoot}/Xbox.Services.API.C/DesignTime/CommonConfiguration/Neutral/Include"
INTERFACE_INCLUDE_DIRECTORIES "${Console_GRDKExtLibRoot}/Xbox.Services.API.C/${Console_GRDKExtIncludePath}"
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX")
add_library(Xbox::HTTPClient STATIC IMPORTED)
set_target_properties(Xbox::HTTPClient PROPERTIES
IMPORTED_LOCATION_RELEASE "${Console_GRDKExtLibRoot}/Xbox.Services.API.C/DesignTime/CommonConfiguration/Neutral/Lib/Release/v${ExtensionPlatformToolset}/libHttpClient.${ExtensionPlatformToolset}.GDK.C.lib"
IMPORTED_LOCATION_DEBUG "${Console_GRDKExtLibRoot}/Xbox.Services.API.C/DesignTime/CommonConfiguration/Neutral/Lib/Debug/v${ExtensionPlatformToolset}/libHttpClient.${ExtensionPlatformToolset}.GDK.C.lib"
IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
MAP_IMPORTED_CONFIG_MINSIZEREL Release
MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX")
# Xbox::HTTPClient (prior to June 2024 was included as part of Xbox.Services.API.C)
if(XdkEditionTarget GREATER_EQUAL 240600)
add_library(Xbox::HTTPClient SHARED IMPORTED)
set_target_properties(Xbox::HTTPClient PROPERTIES
IMPORTED_LOCATION "${Console_GRDKExtLibRoot}/Xbox.LibHttpClient/${Console_GRDKExtDLLPath}/libHttpClient.GDK.dll"
IMPORTED_IMPLIB "${Console_GRDKExtLibRoot}/Xbox.LibHttpClient/${Console_GRDKExtLibPath}/libHttpClient.GDK.lib"
MAP_IMPORTED_CONFIG_MINSIZEREL ""
MAP_IMPORTED_CONFIG_RELWITHDEBINFO ""
INTERFACE_INCLUDE_DIRECTORIES "${Console_GRDKExtLibRoot}/Xbox.LibHttpClient/${Console_GRDKExtIncludePath}")
else()
add_library(Xbox::HTTPClient STATIC IMPORTED)
set_target_properties(Xbox::HTTPClient PROPERTIES
IMPORTED_LOCATION_RELEASE "${Console_GRDKExtLibRoot}/Xbox.Services.API.C/${Console_GRDKExtLibPath}/Release/v${ExtensionPlatformToolset}/libHttpClient.${ExtensionPlatformToolset}.GDK.C.lib"
IMPORTED_LOCATION_DEBUG "${Console_GRDKExtLibRoot}/Xbox.Services.API.C/${Console_GRDKExtLibPath}/Debug/v${ExtensionPlatformToolset}/libHttpClient.${ExtensionPlatformToolset}.GDK.C.lib"
IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
MAP_IMPORTED_CONFIG_MINSIZEREL Release
MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX")
endif()
target_link_libraries(Xbox::XSAPI INTERFACE Xbox::HTTPClient Xbox::XCurl appnotify.lib winhttp.lib crypt32.lib)
# GameChat2
add_library(Xbox::GameChat2 SHARED IMPORTED)
set_target_properties(Xbox::GameChat2 PROPERTIES
IMPORTED_LOCATION "${Console_GRDKExtLibRoot}/Xbox.Game.Chat.2.Cpp.API/Redist/CommonConfiguration/neutral/GameChat2.dll"
IMPORTED_IMPLIB "${Console_GRDKExtLibRoot}/Xbox.Game.Chat.2.Cpp.API/DesignTime/CommonConfiguration/neutral/lib/GameChat2.lib"
IMPORTED_LOCATION "${Console_GRDKExtLibRoot}/Xbox.Game.Chat.2.Cpp.API/${Console_GRDKExtDLLPath}/GameChat2.dll"
IMPORTED_IMPLIB "${Console_GRDKExtLibRoot}/Xbox.Game.Chat.2.Cpp.API/${Console_GRDKExtLibPath}/GameChat2.lib"
MAP_IMPORTED_CONFIG_MINSIZEREL ""
MAP_IMPORTED_CONFIG_RELWITHDEBINFO ""
INTERFACE_INCLUDE_DIRECTORIES "${Console_GRDKExtLibRoot}/Xbox.Game.Chat.2.Cpp.API/DesignTime/CommonConfiguration/neutral/Include")
INTERFACE_INCLUDE_DIRECTORIES "${Console_GRDKExtLibRoot}/Xbox.Game.Chat.2.Cpp.API/${Console_GRDKExtIncludePath}")
# PlayFab Multiplayer (requires XCurl)
add_library(Xbox::PlayFabMultiplayer SHARED IMPORTED)
set_target_properties(Xbox::PlayFabMultiplayer PROPERTIES
IMPORTED_LOCATION "${Console_GRDKExtLibRoot}/PlayFab.Multiplayer.Cpp/Redist/CommonConfiguration/neutral/PlayFabMultiplayerGDK.dll"
IMPORTED_IMPLIB "${Console_GRDKExtLibRoot}/PlayFab.Multiplayer.Cpp/DesignTime/CommonConfiguration/neutral/Lib/PlayFabMultiplayerGDK.lib"
IMPORTED_LOCATION "${Console_GRDKExtLibRoot}/PlayFab.Multiplayer.Cpp/${Console_GRDKExtDLLPath}/PlayFabMultiplayerGDK.dll"
IMPORTED_IMPLIB "${Console_GRDKExtLibRoot}/PlayFab.Multiplayer.Cpp/${Console_GRDKExtLibPath}/PlayFabMultiplayerGDK.lib"
IMPORTED_LINK_DEPENDENT_LIBRARIES Xbox::XCurl
MAP_IMPORTED_CONFIG_MINSIZEREL ""
MAP_IMPORTED_CONFIG_RELWITHDEBINFO ""
INTERFACE_INCLUDE_DIRECTORIES "${Console_GRDKExtLibRoot}/PlayFab.Multiplayer.Cpp/DesignTime/CommonConfiguration/neutral/Include")
INTERFACE_INCLUDE_DIRECTORIES "${Console_GRDKExtLibRoot}/PlayFab.Multiplayer.Cpp/${Console_GRDKExtIncludePath}")
target_link_libraries(Xbox::PlayFabMultiplayer INTERFACE Xbox::XCurl)
@ -119,18 +134,18 @@ target_link_libraries(Xbox::PlayFabMultiplayer INTERFACE Xbox::XCurl)
if(XdkEditionTarget GREATER_EQUAL 230300)
add_library(Xbox::PlayFabServices SHARED IMPORTED)
set_target_properties(Xbox::PlayFabServices PROPERTIES
IMPORTED_LOCATION "${Console_GRDKExtLibRoot}/PlayFab.Services.C/Redist/CommonConfiguration/neutral/PlayFabServices.GDK.dll"
IMPORTED_IMPLIB "${Console_GRDKExtLibRoot}/PlayFab.Services.C/DesignTime/CommonConfiguration/neutral/Lib/PlayFabServices.GDK.lib"
IMPORTED_LOCATION "${Console_GRDKExtLibRoot}/PlayFab.Services.C/${Console_GRDKExtDLLPath}/PlayFabServices.GDK.dll"
IMPORTED_IMPLIB "${Console_GRDKExtLibRoot}/PlayFab.Services.C/${Console_GRDKExtLibPath}/PlayFabServices.GDK.lib"
IMPORTED_LINK_DEPENDENT_LIBRARIES Xbox::XCurl
MAP_IMPORTED_CONFIG_MINSIZEREL ""
MAP_IMPORTED_CONFIG_RELWITHDEBINFO ""
INTERFACE_INCLUDE_DIRECTORIES "${Console_GRDKExtLibRoot}/PlayFab.Services.C/DesignTime/CommonConfiguration/neutral/Include"
INTERFACE_INCLUDE_DIRECTORIES "${Console_GRDKExtLibRoot}/PlayFab.Services.C/${Console_GRDKExtIncludePath}"
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX")
add_library(Xbox::PlayFabCore SHARED IMPORTED)
set_target_properties(Xbox::PlayFabCore PROPERTIES
IMPORTED_LOCATION "${Console_GRDKExtLibRoot}/PlayFab.Services.C/Redist/CommonConfiguration/neutral/PlayFabCore.GDK.dll"
IMPORTED_IMPLIB "${Console_GRDKExtLibRoot}/PlayFab.Services.C/DesignTime/CommonConfiguration/neutral/Lib/PlayFabCore.GDK.lib"
IMPORTED_LOCATION "${Console_GRDKExtLibRoot}/PlayFab.Services.C/${Console_GRDKExtDLLPath}/PlayFabCore.GDK.dll"
IMPORTED_IMPLIB "${Console_GRDKExtLibRoot}/PlayFab.Services.C/${Console_GRDKExtLibPath}/PlayFabCore.GDK.lib"
MAP_IMPORTED_CONFIG_MINSIZEREL ""
MAP_IMPORTED_CONFIG_RELWITHDEBINFO ""
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX")
@ -141,21 +156,21 @@ endif()
# PlayFab Party
add_library(Xbox::PlayFabParty SHARED IMPORTED)
set_target_properties(Xbox::PlayFabParty PROPERTIES
IMPORTED_LOCATION "${Console_GRDKExtLibRoot}/PlayFab.Party.Cpp/Redist/CommonConfiguration/neutral/Party.dll"
IMPORTED_IMPLIB "${Console_GRDKExtLibRoot}/PlayFab.Party.Cpp/DesignTime/CommonConfiguration/neutral/Lib/Party.lib"
IMPORTED_LOCATION "${Console_GRDKExtLibRoot}/PlayFab.Party.Cpp/${Console_GRDKExtDLLPath}/Party.dll"
IMPORTED_IMPLIB "${Console_GRDKExtLibRoot}/PlayFab.Party.Cpp/${Console_GRDKExtLibPath}/Party.lib"
MAP_IMPORTED_CONFIG_MINSIZEREL ""
MAP_IMPORTED_CONFIG_RELWITHDEBINFO ""
INTERFACE_INCLUDE_DIRECTORIES "${Console_GRDKExtLibRoot}/PlayFab.Party.Cpp/DesignTime/CommonConfiguration/neutral/Include")
INTERFACE_INCLUDE_DIRECTORIES "${Console_GRDKExtLibRoot}/PlayFab.Party.Cpp/${Console_GRDKExtIncludePath}")
# PlayFab Party Xbox LIVE (requires PlayFab Party)
add_library(Xbox::PlayFabPartyLIVE SHARED IMPORTED)
set_target_properties(Xbox::PlayFabPartyLIVE PROPERTIES
IMPORTED_LOCATION "${Console_GRDKExtLibRoot}/PlayFab.PartyXboxLive.Cpp/Redist/CommonConfiguration/neutral/PartyXboxLive.dll"
IMPORTED_IMPLIB "${Console_GRDKExtLibRoot}/PlayFab.PartyXboxLive.Cpp/DesignTime/CommonConfiguration/neutral/Lib/PartyXboxLive.lib"
IMPORTED_LOCATION "${Console_GRDKExtLibRoot}/PlayFab.PartyXboxLive.Cpp/${Console_GRDKExtDLLPath}/PartyXboxLive.dll"
IMPORTED_IMPLIB "${Console_GRDKExtLibRoot}/PlayFab.PartyXboxLive.Cpp/${Console_GRDKExtLibPath}/PartyXboxLive.lib"
IMPORTED_LINK_DEPENDENT_LIBRARIES Xbox::PlayFabParty
MAP_IMPORTED_CONFIG_MINSIZEREL ""
MAP_IMPORTED_CONFIG_RELWITHDEBINFO ""
INTERFACE_INCLUDE_DIRECTORIES "${Console_GRDKExtLibRoot}/PlayFab.PartyXboxLive.Cpp/DesignTime/CommonConfiguration/neutral/Include")
INTERFACE_INCLUDE_DIRECTORIES "${Console_GRDKExtLibRoot}/PlayFab.PartyXboxLive.Cpp/${Console_GRDKExtIncludePath}")
target_link_libraries(Xbox::PlayFabPartyLIVE INTERFACE Xbox::PlayFabParty)

Просмотреть файл

@ -175,10 +175,10 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
elseif(CMAKE_INTERPROCEDURAL_OPTIMIZATION)
# /GL (Whole Program Optimization)
# /Gw (Optimize Global Data)
target_compile_options(${PROJECT_NAME} PRIVATE /Gw)
target_compile_options(${PROJECT_NAME} PRIVATE $<$<NOT:$<CONFIG:Debug>>:/Gw>)
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.35)
target_compile_options(${PROJECT_NAME} PRIVATE /Zc:checkGwOdr)
target_compile_options(${PROJECT_NAME} PRIVATE $<$<NOT:$<CONFIG:Debug>>:/Zc:checkGwOdr>)
endif()
# /LTCG (Link-time Code Generation)

Просмотреть файл

@ -13,7 +13,7 @@
"hidden": true,
"binaryDir": "${sourceDir}/out/build/${presetName}",
"cacheVariables": {
"XdkEditionTarget": "231000",
"XdkEditionTarget": "240600",
"CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}"
}
},

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -138,10 +138,10 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
elseif(CMAKE_INTERPROCEDURAL_OPTIMIZATION)
# /GL (Whole Program Optimization)
# /Gw (Optimize Global Data)
target_compile_options(${PROJECT_NAME} PRIVATE /Gw)
target_compile_options(${PROJECT_NAME} PRIVATE $<$<NOT:$<CONFIG:Debug>>:/Gw>)
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.35)
target_compile_options(${PROJECT_NAME} PRIVATE /Zc:checkGwOdr)
target_compile_options(${PROJECT_NAME} PRIVATE $<$<NOT:$<CONFIG:Debug>>:/Zc:checkGwOdr>)
endif()
# /LTCG (Link-time Code Generation)
@ -192,7 +192,8 @@ add_custom_command(
$<TARGET_FILE_DIR:${PROJECT_NAME}>
)
if(CMAKE_BUILD_TYPE MATCHES "Debug")
get_property(is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if((CMAKE_BUILD_TYPE MATCHES "Debug") OR is_multi_config)
add_custom_command(
TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy

Просмотреть файл

@ -13,7 +13,7 @@
"hidden": true,
"binaryDir": "${sourceDir}/out/build/${presetName}",
"cacheVariables": {
"XdkEditionTarget": "231000",
"XdkEditionTarget": "240600",
"CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}"
}
},

Просмотреть файл

@ -138,10 +138,10 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
elseif(CMAKE_INTERPROCEDURAL_OPTIMIZATION)
# /GL (Whole Program Optimization)
# /Gw (Optimize Global Data)
target_compile_options(${PROJECT_NAME} PRIVATE /Gw)
target_compile_options(${PROJECT_NAME} PRIVATE $<$<NOT:$<CONFIG:Debug>>:/Gw>)
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.35)
target_compile_options(${PROJECT_NAME} PRIVATE /Zc:checkGwOdr)
target_compile_options(${PROJECT_NAME} PRIVATE $<$<NOT:$<CONFIG:Debug>>:/Zc:checkGwOdr>)
endif()
# /LTCG (Link-time Code Generation)
@ -192,7 +192,8 @@ add_custom_command(
$<TARGET_FILE_DIR:${PROJECT_NAME}>
)
if(CMAKE_BUILD_TYPE MATCHES "Debug")
get_property(is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if((CMAKE_BUILD_TYPE MATCHES "Debug") OR is_multi_config)
add_custom_command(
TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy

Просмотреть файл

@ -13,7 +13,7 @@
"hidden": true,
"binaryDir": "${sourceDir}/out/build/${presetName}",
"cacheVariables": {
"XdkEditionTarget": "231000",
"XdkEditionTarget": "240600",
"CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}"
}
},

Просмотреть файл

@ -1,6 +1,6 @@
# CMake Example
*This sample is compatible with the Microsoft Game Development Kit (March 2022)*
*This sample is compatible with the Microsoft Game Development Kit (March 2023)*
# Description
@ -248,3 +248,5 @@ See the **BWOIExample** for more details.
|March 2023|Updated to add new target for Playfab.Services.C extension library.|
|June 2023|Xbox One titles need to use `/d2vzeroupper-` with VS 2022 or later as the default behavior has flipped from VS 2019.|
|October 2023|The Microsoft GDK now requires Windows 11 SDK (22000) or later.|
|June 2024|Minor update for multi-config generators.|

Просмотреть файл

@ -105,6 +105,20 @@ if((MSVC_VERSION GREATER_EQUAL 1924)
target_compile_options(${PROJECT_NAME} PRIVATE /ZH:SHA_256)
endif()
if (CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE OR CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO)
# /GL (Whole Program Optimization)
# /Gw (Optimize Global Data)
target_compile_options(${PROJECT_NAME} PRIVATE $<$<NOT:$<CONFIG:Debug>>:/Gw>)
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.35)
target_compile_options(${PROJECT_NAME} PRIVATE $<$<NOT:$<CONFIG:Debug>>:/Zc:checkGwOdr>)
endif()
# /LTCG (Link-time Code Generation)
# Ignores warning from CMake generator use of /INCREMENTAL
target_link_options(${PROJECT_NAME} PRIVATE /IGNORE:4075)
endif()
# Set link libraries
target_link_libraries(${PROJECT_NAME} PRIVATE xgameruntime.lib)
@ -142,7 +156,13 @@ set_property(TARGET ${PROJECT_NAME} PROPERTY VS_GLOBAL_GDKExtLibNames Xbox.Servi
# VC++ binary compatibility means we can use the VS 2019 version with VS 2019 or VS 2022
set(ExtensionPlatformToolset 142)
target_link_libraries(${PROJECT_NAME} PRIVATE "libHttpClient.${ExtensionPlatformToolset}.GDK.C.lib" "Microsoft.Xbox.Services.${ExtensionPlatformToolset}.GDK.C.lib" winhttp.lib crypt32.lib)
target_link_libraries(${PROJECT_NAME} PRIVATE "Microsoft.Xbox.Services.${ExtensionPlatformToolset}.GDK.C.lib" winhttp.lib crypt32.lib)
if(XdkEditionTarget GREATER_EQUAL 240600)
target_link_libraries(${PROJECT_NAME} PRIVATE "libHttpClient.GDK.lib")
else()
target_link_libraries(${PROJECT_NAME} PRIVATE "libHttpClient.${ExtensionPlatformToolset}.GDK.C.lib")
endif()
if(CMAKE_VS_PLATFORM_NAME STREQUAL "Gaming.Desktop.x64")
target_link_libraries(${PROJECT_NAME} PRIVATE appnotify.lib)

Просмотреть файл

@ -13,8 +13,9 @@
"hidden": true,
"binaryDir": "${sourceDir}/out/build/${presetName}",
"cacheVariables": {
"XdkEditionTarget": "231000",
"CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}"
"XdkEditionTarget": "240600",
"CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}",
"CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE": true
}
},

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -296,5 +296,5 @@ set_property(TARGET ${PROJECT_NAME} PROPERTY VS_GLOBAL_VCToolsVersion "14.20.275
|October 2022|Removed VS 2017 support.<br />Fixed bugs with the CmakePresets.json|
|November 2022|Requires March 2022 GDK or later as its now using the .mgc file extension.<br /> Updated to require CMake 3.20 now that VS 2019 16.10 and earlier are out of their support lifecycle.|
|March 2023|Updated to add new target for Playfab.Services.C extension library.|
|January 2024|Fixed issue with non-Debug configurations using /RTC1|
|January 2024|Fixed issue with non-Debug configurations using /RTC1.|
|June 2024|Update Whole Program Optimization support.|

Просмотреть файл

@ -159,10 +159,8 @@ message("CRT Platform Toolset = ${CRTPlatformToolset}")
set(CppRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/x64/Microsoft.VC${CRTPlatformToolset}.CRT")
set(OpenMPRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/x64/Microsoft.VC${CRTPlatformToolset}.OpenMP")
if(CMAKE_BUILD_TYPE MATCHES "Debug")
set(DebugCppRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/Debug_NonRedist/x64/Microsoft.VC${CRTPlatformToolset}.DebugCRT")
set(DebugOpenMPRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/Debug_NonRedist/x64/Microsoft.VC${CRTPlatformToolset}.DebugOpenMP")
endif()
set(DebugCppRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/Debug_NonRedist/x64/Microsoft.VC${CRTPlatformToolset}.DebugCRT")
set(DebugOpenMPRuntimeFilesPath "${VCInstallDir}/redist/MSVC/${VCToolsRedistVersion}/onecore/Debug_NonRedist/x64/Microsoft.VC${CRTPlatformToolset}.DebugOpenMP")
#--- Build options
# Required preprocessor defines

Просмотреть файл

@ -74,11 +74,11 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
target_compile_options(${PROJECT_NAME} PRIVATE /Zc:lambda)
endif()
if((NOT (CMAKE_BUILD_TYPE MATCHES "Debug")) AND CMAKE_INTERPROCEDURAL_OPTIMIZATION)
target_compile_options(${PROJECT_NAME} PRIVATE /Gw)
if(CMAKE_INTERPROCEDURAL_OPTIMIZATION)
target_compile_options(${PROJECT_NAME} PRIVATE $<$<NOT:$<CONFIG:Debug>>:/Gw>)
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.35)
target_compile_options(${PROJECT_NAME} PRIVATE /Zc:checkGwOdr)
target_compile_options(${PROJECT_NAME} PRIVATE $<$<NOT:$<CONFIG:Debug>>:/Zc:checkGwOdr>)
endif()
target_link_options(${PROJECT_NAME} PRIVATE /IGNORE:4075 ${Console_ArchOptions_LTCG})
@ -112,7 +112,8 @@ add_custom_command(
$<TARGET_FILE_DIR:${PROJECT_NAME}>
)
if(CMAKE_BUILD_TYPE MATCHES "Debug")
get_property(is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if((CMAKE_BUILD_TYPE MATCHES "Debug") OR is_multi_config)
add_custom_command(
TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy

Просмотреть файл

@ -0,0 +1,70 @@
# Copyright (C) Microsoft Corporation. All rights reserved.
cmake_minimum_required (VERSION 3.20)
project(xbdepends
DESCRIPTION "Microsoft Xbox Binary Dependencies Tool"
LANGUAGES CXX)
if(NOT WIN32)
message(FATAL_ERROR "This tool is compatible with Windows 10")
endif()
if((NOT MSVC) OR (CMAKE_SIZEOF_VOID_P EQUAL 4))
message(FATAL_ERROR "ERROR: This tool requires MSVC or MSVC-like 64-bit compiler")
endif()
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
# Always use retail static CRT for this tool
set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded)
add_executable(${PROJECT_NAME}
xbdepends.cpp
GameOSAPIs.h
KnownDLLs.h)
target_compile_definitions(${PROJECT_NAME} PRIVATE _CONSOLE _UNICODE UNICODE _WIN32_WINNT=0x0A00)
target_compile_options(${PROJECT_NAME} PRIVATE /W4 /GR- /fp:fast /GS /Gy)
# Don't link with kernel32.lib, etc.
set(CMAKE_CXX_STANDARD_LIBRARIES "")
set(CMAKE_CXX_STANDARD_LIBRARIES_INIT "")
target_link_libraries(${PROJECT_NAME} PRIVATE onecore_apiset.lib)
target_link_options(${PROJECT_NAME} PRIVATE /SUBSYSTEM:CONSOLE,10.0 /NODEFAULTLIB:kernel32.lib /NODEFAULTLIB:onecore.lib)
if((MSVC_VERSION GREATER_EQUAL 1924)
AND ((NOT (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) OR (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0)))
target_compile_options(${PROJECT_NAME} PRIVATE /ZH:SHA_256)
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
target_compile_options(${PROJECT_NAME} PRIVATE /permissive- /Zc:__cplusplus /Zc:inline)
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.26)
target_compile_options(${PROJECT_NAME} PRIVATE /Zc:preprocessor)
endif()
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.27)
target_link_options(${PROJECT_NAME} PRIVATE /CETCOMPAT)
endif()
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
target_compile_options(${PROJECT_NAME} PRIVATE
-Wno-c++98-compat
-Wno-c++98-compat-pedantic
-Wno-gnu-anonymous-struct
-Wno-language-extension-token
-Wno-nested-anon-types
-Wno-reserved-id-macro
-Wno-unknown-pragmas)
endif()

Просмотреть файл

@ -0,0 +1,58 @@
{
"version": 2,
"configurePresets": [
{
"name": "base",
"displayName": "Basic Config",
"description": "Basic build using Ninja generator",
"generator": "Ninja",
"architecture": {
"value": "x64",
"strategy": "external"
},
"hidden": true,
"binaryDir": "${sourceDir}/out/build/${presetName}",
"cacheVariables": { "CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}" }
},
{
"name": "Debug",
"cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" },
"hidden": true
},
{
"name": "Release",
"cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo" },
"hidden": true
},
{
"name": "MSVC",
"hidden": true,
"cacheVariables": {
"CMAKE_CXX_COMPILER": "cl.exe"
},
"toolset": {
"value": "host=x64",
"strategy": "external"
}
},
{
"name": "Clang",
"hidden": true,
"cacheVariables": {
"CMAKE_CXX_COMPILER": "clang-cl.exe"
},
"toolset": {
"value": "host=x64",
"strategy": "external"
}
},
{ "name": "x64-Debug" , "description": "MSVC for x64 (Debug)", "inherits": [ "base", "Debug", "MSVC" ] },
{ "name": "x64-Release" , "description": "MSVC for x64 (Release)", "inherits": [ "base", "Release", "MSVC" ] },
{ "name": "x64-Debug-Clang" , "description": "Clang/LLVM for x64 (Debug)", "inherits": [ "base", "Debug", "Clang" ] },
{ "name": "x64-Release-Clang" , "description": "Clang/LLVM for x64 (Release)", "inherits": [ "base", "Release", "Clang" ] }
]
}

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,391 @@
//--------------------------------------------------------------------------------------
// File: KnownDLLs.h
//
// Microsoft Xbox Binary Dependencies Tool - Known DLLs data
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//--------------------------------------------------------------------------------------
#pragma once
//
// This is not a list of all DLLs in the OS images. Rather, it is s a list of DLLs known to
// be linked by EXEs or DLLs.
//
namespace KnownDLLs
{
// All versions of Windows 10
const char* c_CoreOS[] =
{
"avrt.dll",
"bcrypt.dll",
"Cabinet.dll",
"cfgmgr32.dll",
"combase.dll",
"crypt32.dll",
"D3DCompiler_47.dll",
"dbghelp.dll",
"dhcpcsvc.dll",
"dnsapi.dll",
"imagehlp.dll",
"IPHLPAPI.DLL",
"MFPlat.DLL",
"mfreadwrite.dll",
"MMDevAPI.dll",
"msvcp_win.dll",
"msvcrt.dll",
"mswsock.dll",
"ncrypt.dll",
"ntdll.dll",
"oleaut32.dll",
"powrprof.dll",
"rpcrt4.dll",
"secur32.dll",
"sspicli.dll",
"ucrtbase.dll",
"userenv.dll",
"WindowsCodecs.dll",
"winhttp.dll",
"Wldap32.dll",
"ws2_32.dll",
"wsock32.dll",
"XAudio2_9.dll",
"xcrdapi.dll",
"xmllite.dll",
};
const char* c_Win32[] =
{
"ADVAPI32.dll",
"kernel32.dll",
"ole32.dll",
"SHELL32.dll",
"USER32.dll",
};
const char* c_GameOSOnly[] =
{
"AcpHal.dll",
"chad.dll",
"pixevt.dll",
"xapu.dll",
"xfrontpaneldisplay.dll",
"xmem.dll",
};
const char* c_SystemOS[] =
{
"credui.dll",
"dxva2.dll",
"esent.dll",
"gdi32.dll",
"hid.dll",
"mf.dll",
"mscoree.dll",
"msvcp110_win.dll",
"normaliz.dll",
"propsys.dll",
"UIAutomationCore.dll",
"urlmon.dll",
"wininet.dll",
"wintrust.dll",
"winusb.dll",
"XInputUap.dll",
};
const char* c_PCOnly[] =
{
"BluetoothApis.dll",
"bthprops.cpl",
"COMCTL32.dll",
"COMDLG32.dll",
"CRYPTUI.dll",
"d3dcsx_47.dll",
"DDRAW.dll",
"dinput.dll",
"dinput8.dll",
"dsound.dll",
"dwmapi.dll",
"gdiplus.dll",
"IMM32.dll",
"msi.dll",
"ndfapi.dll",
"netapi32.dll",
"OLEACC.dll",
"OPENGL32.dll",
"pdh.dll",
"SETUPAPI.dll",
"SHLWAPI.dll",
"USP10.dll",
"UxTheme.dll",
"version.dll",
"WINMM.dll",
"WINSPOOL.DRV",
"WTSAPI32.dll",
"XAudio2_8.dll",
"XINPUT1_4.dll",
"XInput9_1_0.dll",
};
// Vendor DLLs that are not deploy side-by-side
const char* c_PCVendor[] =
{
"mantle64.dll",
"nvcuda.dll",
"nvfatbinaryLoader.dll",
};
const char* c_LegacyERA[] =
{
"kernelx.dll",
};
const char* c_LegacyDXSDK[] =
{
"D3DCompiler_33.dll",
"D3DCompiler_34.dll",
"D3DCompiler_35.dll",
"D3DCompiler_36.dll",
"D3DCompiler_37.dll",
"D3DCompiler_38.dll",
"D3DCompiler_39.dll",
"D3DCompiler_40.dll",
"D3DCompiler_41.dll",
"D3DCompiler_42.dll",
"D3DCompiler_43.dll",
"d3dx10.dll",
"d3dx10_33.dll",
"d3dx10_34.dll",
"d3dx10_35.dll",
"d3dx10_36.dll",
"d3dx10_37.dll",
"d3dx10_38.dll",
"d3dx10_39.dll",
"d3dx10_40.dll",
"d3dx10_41.dll",
"d3dx10_42.dll",
"d3dx10_43.dll",
"d3dx11_42.dll",
"d3dx11_43.dll",
"d3dx9_24.dll",
"d3dx9_25.dll",
"d3dx9_26.dll",
"d3dx9_27.dll",
"d3dx9_28.dll",
"d3dx9_29.dll",
"d3dx9_30.dll",
"d3dx9_31.dll",
"d3dx9_32.dll",
"d3dx9_33.dll",
"d3dx9_34.dll",
"d3dx9_35.dll",
"d3dx9_36.dll",
"D3DX9_37.dll",
"D3DX9_38.dll",
"D3DX9_39.dll",
"D3DX9_40.dll",
"D3DX9_41.dll",
"D3DX9_42.dll",
"D3DX9_43.dll",
"x3daudio1_0.dll",
"x3daudio1_1.dll",
"x3daudio1_2.dll",
"X3DAudio1_3.dll",
"X3DAudio1_4.dll",
"X3DAudio1_5.dll",
"X3DAudio1_6.dll",
"X3DAudio1_7.dll",
"xactengine2_0.dll",
"xactengine2_1.dll",
"xactengine2_10.dll",
"xactengine2_2.dll",
"xactengine2_3.dll",
"xactengine2_4.dll",
"xactengine2_5.dll",
"xactengine2_6.dll",
"xactengine2_7.dll",
"xactengine2_8.dll",
"xactengine2_9.dll",
"xactengine3_0.dll",
"xactengine3_1.dll",
"xactengine3_2.dll",
"xactengine3_3.dll",
"xactengine3_4.dll",
"xactengine3_5.dll",
"xactengine3_6.dll",
"xactengine3_7.dll",
"XAPOFX1_0.dll",
"XAPOFX1_1.dll",
"XAPOFX1_2.dll",
"XAPOFX1_3.dll",
"XAPOFX1_4.dll",
"XAPOFX1_5.dll",
"XAudio2_0.dll",
"XAudio2_1.dll",
"XAudio2_2.dll",
"XAudio2_3.dll",
"XAudio2_4.dll",
"XAudio2_5.dll",
"XAudio2_6.dll",
"XAudio2_7.dll",
"xinput1_1.dll",
"xinput1_2.dll",
"xinput1_3.dll",
};
const char* c_LegacyDXSDKDebug[] =
{
"d3d8d.dll",
"d3d9d.dll",
"d3dx10d.dll",
"d3dx10d_33.dll",
"d3dx10d_34.dll",
"d3dx10d_35.dll",
"d3dx10d_36.dll",
"d3dx10d_37.dll",
"d3dx10d_38.dll",
"d3dx10d_39.dll",
"d3dx10d_40.dll",
"d3dx10d_41.dll",
"d3dx10d_42.dll",
"d3dx10d_43.dll",
"d3dx11d_42.dll",
"d3dx11d_43.dll",
"d3dx9d_24.dll",
"d3dx9d_25.dll",
"d3dx9d_26.dll",
"d3dx9d_27.dll",
"d3dx9d_28.dll",
"d3dx9d_29.dll",
"d3dx9d_30.dll",
"d3dx9d_31.dll",
"d3dx9d_32.dll",
"d3dx9d_33.dll",
"d3dx9d_34.dll",
"d3dx9d_35.dll",
"d3dx9d_36.dll",
"D3DX9d_37.dll",
"D3DX9d_38.dll",
"D3DX9d_39.dll",
"D3DX9d_40.dll",
"D3DX9d_41.dll",
"D3DX9d_42.dll",
"D3DX9d_43.dll",
"x3daudiod1_0.dll",
"x3daudiod1_1.dll",
"x3daudiod1_2.dll",
"X3DAudiod1_3.dll",
"X3DAudiod1_4.dll",
"X3DAudiod1_5.dll",
"X3DAudiod1_6.dll",
"X3DAudiod1_7.dll",
"xactengineA2_0.dll",
"xactengineA2_1.dll",
"xactengineA2_10.dll",
"xactengineA2_2.dll",
"xactengineA2_3.dll",
"xactengineA2_4.dll",
"xactengineA2_5.dll",
"xactengineA2_6.dll",
"xactengineA2_7.dll",
"xactengineA2_8.dll",
"xactengineA2_9.dll",
"xactengineA3_0.dll",
"xactengineA3_1.dll",
"xactengineA3_2.dll",
"xactengineA3_3.dll",
"xactengineA3_4.dll",
"xactengineA3_5.dll",
"xactengineA3_6.dll",
"xactengineA3_7.dll",
"xactengineD2_0.dll",
"xactengineD2_1.dll",
"xactengineD2_10.dll",
"xactengineD2_2.dll",
"xactengineD2_3.dll",
"xactengineD2_4.dll",
"xactengineD2_5.dll",
"xactengineD2_6.dll",
"xactengineD2_7.dll",
"xactengineD2_8.dll",
"xactengineD2_9.dll",
"xactengineD3_0.dll",
"xactengineD3_1.dll",
"xactengineD3_2.dll",
"xactengineD3_3.dll",
"xactengineD3_4.dll",
"xactengineD3_5.dll",
"xactengineD3_6.dll",
"xactengineD3_7.dll",
"XAPOFXd1_0.dll",
"XAPOFXd1_1.dll",
"XAPOFXd1_2.dll",
"XAPOFXd1_3.dll",
"XAPOFXd1_4.dll",
"XAPOFXd1_5.dll",
"XAudiod2_0.dll",
"XAudiod2_1.dll",
"XAudiod2_2.dll",
"XAudiod2_3.dll",
"XAudiod2_4.dll",
"XAudiod2_5.dll",
"XAudiod2_6.dll",
"XAudiod2_7.dll",
};
const char* c_GDK[] =
{
"GameChat2.dll",
"GameInput.dll",
"gameruntime.dll",
"libHttpClient.GDK.dll",
"Party.dll",
"PartyXboxLive.dll",
"PlayFabMultiplayerGDK.dll",
"PlayFabCore.GDK.dll",
"PlayFabServices.GDK.dll",
"XCurl.dll",
"xsapi.dll",
"Microsoft.Xbox.Services.GDK.C.Thunks.dll",
"xgameruntime.thunks.dll",
};
const char* c_DevOnlyGDK[] =
{
"pgort140.dll",
"psapi.dll",
"xg.dll",
};
const char* c_Direct3D_Legacy[] =
{
"d3d10.dll",
"d3d8.dll",
"d3d9.dll",
};
const char* c_Direct3D_Stock[] =
{
"d2d1.dll",
"d3d11.dll",
"D3D12.dll",
"DWrite.dll",
"dxgi.dll",
"dxgidebug.dll",
};
const char* c_Direct3D_XboxOne[] =
{
"d3d12_x.dll",
"dxcompiler_x.dll",
"xg_x.dll"
};
const char* c_Direct3D_Scarlett[] =
{
"d3d12_xs.dll",
"dxcompiler_xs.dll",
"xg_xs.dll"
};
}

Просмотреть файл

@ -0,0 +1,32 @@
---
page_type: sample
languages:
- cpp
products:
- gdk
urlFragment: "xbdepends"
extendedZipContent:
- path: LICENSE
target: LICENSE
- path: Kits
target: Kits
- path: Media
target: Media
description: "This is a command-line for Windows 10 machines intended to help diagnose build and launch issues for GDKX titles."
---
# xbdepends
For more information see:
- [Readme](https://github.com/microsoft/Xbox-GDK-Samples/blob/main/Samples/Tools/xbdepends/readme_en-us.md)
- [Readme 日本語](https://github.com/microsoft/Xbox-GDK-Samples/blob/main/Samples/Tools/xbdepends/readme_ja-jp.md)
- [Readme 한국어](https://github.com/microsoft/Xbox-GDK-Samples/blob/main/Samples/Tools/xbdepends/readme_ko-kr.md)
- [Readme 中文 (简体)](https://github.com/microsoft/Xbox-GDK-Samples/blob/main/Samples/Tools/xbdepends/readme_zh-cn.md)
## Privacy statement
For more information about Microsoft's privacy policies in general, see the [Microsoft Privacy Statement](https://privacy.microsoft.com/privacystatement/).
## Trademarks
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

Двоичные данные
Samples/Tools/xbdepends/media/image1.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 147 KiB

Просмотреть файл

@ -0,0 +1,163 @@
# xbdepends Sample
*This sample is compatible with the Microsoft Game Development Kit (March 2023)*
# Description
This is a command-line for Windows 10/Windows 11 machines intended to help diagnose
build & launch issues for GDK titles. In particular, it analyzes import
modules for EXEs and DLLs, categorizes them, and provides diagnostic
output. For Xbox One and Scarlett binaries, it also outputs a list of
any OS APIs used but not included in the xgameplatform.lib umbrella
library.
Running without any command-line options produces this output:
![Text Description automatically generated](./media/image1.png)
# Building the sample
As a simple command-line tool, you can build directly using the *Gaming
Command Prompt*:
```
cl /EHsc /D_WIN32_WINNT=0x0A00 /Ox /MT xbdepends.cpp onecore.lib
```
You can use CMake 3.20 or later:
```
cmake -B out .
cmake --build out
```
There are CMake Presets as well:
```
cmake --list-presets
cmake --preset=x64-Debug
cmake --build out\build\x64-Debug
```
Or you can open the CMakeLists.txt from the VS IDE (VS 2019 16.11 or
VS 2022 is required).
- We build with the static Visual C++ Runtime to make the tool trivial
to deploy. Generally, we recommend using /MD for the DLL-based
runtime for titles.
# Usage
For a simple test, we will use the basic templates in the Microsoft GDK.
Create a **Direct3D 12 Xbox Game** project and build it. Then run
**xbdepends** pointing to the layout directory:
```
xbdepends Direct3DGame1\Gaming.Xbox.Scarlett.x64\Layout\Image\Loose\Direct3DGame1.exe
```
This produces the following output:
```
Microsoft (R) Xbox Binary Dependencies Tool
Copyright (C) Microsoft Corp.
reading 'Direct3DGame1.exe' [EXE]
INFO: Found 27 import modules
INFO: Use of Direct3D 12.X_S implies Scarlett target
INFO: Dependencies require 'VS 2019 (16.0)' or later C/C++ Runtime
```
A more verbose output is triggered by the -v switch:
```
xbdepends -v Direct3DGame1\Gaming.Xbox.Scarlett.x64\Layout\Image\Loose\Direct3DGame1.exe
```
This produces the following output:
```
reading 'Direct3DGame1.exe' [EXE]
Linker: 14.00
OS: 6.00
Subsystem: 2 (6.00)
INFO: Found 27 import modules
INFO: Use of Direct3D 12.X_S implies Scarlett target
INFO: Dependencies require 'VS 2019 (16.0)' or later C/C++ Runtime
DLL 'api-ms-win-core-debug-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-errorhandling-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-handle-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-heap-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-interlocked-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-libraryloader-l1-2-0.dll' (OS)
DLL 'api-ms-win-core-localization-l1-2-0.dll' (OS)
DLL 'api-ms-win-core-memory-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-processthreads-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-processthreads-l1-1-1.dll' (OS)
DLL 'api-ms-win-core-profile-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-psm-appnotify-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-psm-appnotify-l1-1-1.dll' (OS)
DLL 'api-ms-win-core-registry-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-registry-l2-1-0.dll' (OS)
DLL 'api-ms-win-core-rtlsupport-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-string-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-synch-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-sysinfo-l1-1-0.dll' (OS)
DLL 'd3d12_xs.dll' (D3D)
DLL 'ext-ms-win-rtcore-ntuser-message-l1-1-0.dll' (OS)
DLL 'ext-ms-win-rtcore-ntuser-window-ansi-l1-1-0.dll' (OS)
DLL 'ext-ms-win-rtcore-ntuser-window-l1-1-0.dll' (OS)
DLL 'PIXEvt.dll' (GameOS)
DLL 'ucrtbased.dll' (CRT)
DLL 'VCRUNTIME140_1D.dll' (CRT)
DLL 'VCRUNTIME140D.dll' (CRT)
```
You can also run with /retail switch and it will warn you that this
build is using Debug CRT items:
```
xbdepends -retail Direct3DGame1\Gaming.Xbox.Scarlett.x64\Layout\Image\Loose\Direct3DGame1.exe
```
This produces the following output:
```
reading 'Direct3DGame1.exe' [EXE]
INFO: Found 27 import modules
INFO: Use of Direct3D 12.X_S implies Scarlett target
ERROR: Using development only DLLs not for use in retail:
ucrtbased.dll
VCRUNTIME140_1D.dll
VCRUNTIME140D.dll
INFO: Dependencies require 'VS 2019 (16.0)' or later C/C++ Runtime
```
The tool also accepts wildcards and can be done recursively:
```
xbdepends -r Direct3DGame1\Gaming.Xbox.Scarlett.x64\Layout\Image\Loose\*.dll
```
# Implementation
In practice, this tool does the same kinds of operations the Microsoft
DUMPBIN tool can do with respect to scanning PE import tables. The
primary difference is that this tool applies some basic rules and
knowledge about GDK titles to generate diagnostic output.
For more information on PE import tables, see:
"*Inside Windows: An In-Depth Look into the Win32 Portable Executable
File Format, Part 2*". MSDN Magazine (March 2002)
<https://docs.microsoft.com/en-us/archive/msdn-magazine/2002/march/inside-windows-an-in-depth-look-into-the-win32-portable-executable-file-format-part-2>
# Update History
|Date|Notes|
|---|---|
|May 2021|Initial release using the xgameplatform.lib from the April 2021 GDK release.|
|January 2022|CMake cleanup and added presets file|
|November 2022|Updated to CMake 3.20|
|June 2024|Update for recent DLL additions|

Просмотреть файл

@ -0,0 +1,158 @@
# xbdepends サンプル
*このサンプルは、Microsoft Game Development Kit と互換性があります (2022 年 3 月)*
# 説明
これは、GDK タイトルのビルドと起動の問題の診断に役立つ、Windows 10/Windows 11 マシンのコマンド ラインです。 特に、EXE と DLL のインポート モジュールを分析し、それらを分類し、診断出力を提供します。 Xbox One および Scarlett バイナリの場合、xgameplatform.lib アンブレラ ライブラリには含まれていない OS API のリストも出力されます。
コマンド ライン オプションを指定せずに実行すると、次の出力が生成されます:
![説明は自動で生成されたものです](./media/image1.png)
# サンプルのビルド
単純なコマンドライン ツールとして、*ゲーム コマンド プロンプト*を使用して直接ビルドできます:
```
cl /EHsc /D_WIN32_WINNT=0x0A00 /Ox /MT xbdepends.cpp onecore.lib
```
CMake 3.20 以降を使用できます:
```
cmake -B out .
cmake --build out
```
CMake プリセットもあります:
```
cmake --list-presets
cmake --preset=x64-Debug
cmake --build out\build\x64-Debug
```
または、VS IDE から CMakeLists.txt を開くことができます (VS 2019 16.11 または VS 2022 が必要です)。
- ツールをデプロイしやすくするために、静的Visual C++ ランタイムを使用してビルドします。 一般に、タイトルの DLL ベースのランタイムには /MD を使用することをお勧めします。
# 使用法
簡単なテストでは、Microsoft GDK の基本的なテンプレートを使用します。 **Direct3D 12 Xbox Game** プロジェクトを作成してビルドします。 次に、レイアウト ディレクトリを指す **xbdepends** を実行します。
```
xbdepends Direct3DGame1\Gaming.Xbox.Scarlett.x64\Layout\Image\Loose\Direct3DGame1.exe
```
次の出力が生成されます:
```
Microsoft (R) Xbox Binary Dependencies Tool
Copyright (C) Microsoft Corp.
reading 'Direct3DGame1.exe' [EXE]
INFO: Found 27 import modules
INFO: Use of Direct3D 12.X_S implies Scarlett target
INFO: Dependencies require 'VS 2019 (16.0)' or later C/C++ Runtime
```
より詳細な出力は、-v スイッチによってトリガーされます:
```
xbdepends -v Direct3DGame1\Gaming.Xbox.Scarlett.x64\Layout\Image\Loose\Direct3DGame1.exe
```
次の出力が生成されます:
```
reading 'Direct3DGame1.exe' [EXE]
Linker: 14.00
OS: 6.00
Subsystem: 2 (6.00)
INFO: Found 27 import modules
INFO: Use of Direct3D 12.X_S implies Scarlett target
INFO: Dependencies require 'VS 2019 (16.0)' or later C/C++ Runtime
DLL 'api-ms-win-core-debug-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-errorhandling-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-handle-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-heap-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-interlocked-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-libraryloader-l1-2-0.dll' (OS)
DLL 'api-ms-win-core-localization-l1-2-0.dll' (OS)
DLL 'api-ms-win-core-memory-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-processthreads-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-processthreads-l1-1-1.dll' (OS)
DLL 'api-ms-win-core-profile-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-psm-appnotify-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-psm-appnotify-l1-1-1.dll' (OS)
DLL 'api-ms-win-core-registry-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-registry-l2-1-0.dll' (OS)
DLL 'api-ms-win-core-rtlsupport-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-string-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-synch-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-sysinfo-l1-1-0.dll' (OS)
DLL 'd3d12_xs.dll' (D3D)
DLL 'ext-ms-win-rtcore-ntuser-message-l1-1-0.dll' (OS)
DLL 'ext-ms-win-rtcore-ntuser-window-ansi-l1-1-0.dll' (OS)
DLL 'ext-ms-win-rtcore-ntuser-window-l1-1-0.dll' (OS)
DLL 'PIXEvt.dll' (GameOS)
DLL 'ucrtbased.dll' (CRT)
DLL 'VCRUNTIME140_1D.dll' (CRT)
DLL 'VCRUNTIME140D.dll' (CRT)
```
/retail スイッチを使用して実行することもできます。このビルドでは Debug CRT 項目が使用されていることが警告されます。
```
xbdepends -retail Direct3DGame1\Gaming.Xbox.Scarlett.x64\Layout\Image\Loose\Direct3DGame1.exe
```
次の出力が生成されます:
```
reading 'Direct3DGame1.exe' [EXE]
INFO: Found 27 import modules
INFO: Use of Direct3D 12.X_S implies Scarlett target
ERROR: Using development only DLLs not for use in retail:
ucrtbased.dll
VCRUNTIME140_1D.dll
VCRUNTIME140D.dll
INFO: Dependencies require 'VS 2019 (16.0)' or later C/C++ Runtime
```
このツールはワイルドカードも受け入れ、再帰的に実行できます:
```
xbdepends -r Direct3DGame1\Gaming.Xbox.Scarlett.x64\Layout\Image\Loose\*.dll
```
# 実装
実際には、このツールは、PE インポート テーブルのスキャンに関して Microsoft DUMPBIN ツールで実行できる操作と同じ種類の操作を行います。 主な違いは、このツールが GDK タイトルに関するいくつかの基本的なルールと知識を適用して診断出力を生成することです。
PE インポート テーブルの詳細については、以下を参照してください:
「*Windows の内部: Win32 ポータブル実行可能ファイル形式の詳細、パート 2*」。 MSDN マガジン (2002 年 3 月)
<https://docs.microsoft.com/en-us/archive/msdn-magazine/2002/march/inside-windows-an-in-depth-look-into-the-win32-portable-executable-file-format-part-2>
# 更新履歴
| 日付 | 注意 |
|---|---|
| 2021 年 5 月 | April 2021 GDK リリースの xgameplatform.lib を使用した初期リリース。 |
| 2022 年 1 月 | CMake クリーンアップとプリセット ファイルの追加 |
| 2022 年 11 月 | CMake 3.20 に更新されました |

Просмотреть файл

@ -0,0 +1,158 @@
# xbdepends 샘플
*이 샘플은 Microsoft 게임 개발 키트(2022년 3월)와 호환됩니다.*
# 설명
GDK 타이틀에 대한 빌드 및 시작 문제의 진단에 도움이 되는 Windows 10/Windows 11 컴퓨터용 명령줄입니다. 특히 EXE 및 DLL에 대한 가져오기 모듈을 분석하고 분류하며 진단 출력을 제공합니다. Xbox One 및 Scarlett 이진 파일의 경우 xgameplatform.lib 우산 라이브러리에 포함되지 않았지만 사용된 OS API 목록도 출력합니다.
명령줄 옵션 없이 실행하면 다음 출력이 생성됩니다.
![자동으로 생성된 텍스트 설명](./media/image1.png)
# 샘플 빌드
간단한 명령줄 도구로 *게임 명령 프롬프트*를 사용하여 직접 빌드할 수 있습니다.
```
cl /EHsc /D_WIN32_WINNT=0x0A00 /Ox /MT xbdepends.cpp onecore.lib
```
CMake 3.20 이상을 사용할 수 있습니다.
```
cmake -B out .
cmake --build out
```
CMake 사전 설정도 있습니다.
```
cmake --list-presets
cmake --preset=x64-Debug
cmake --build out\build\x64-Debug
```
또는 VS IDE에서 CMakeLists.txt를 열 수 있습니다(VS 2019 16.11 또는 VS 2022가 필요함).
- 정적 Visual C++ 런타임으로 빌드하여 도구를 배포하기에 사소하게 만듭니다. 일반적으로 타이틀의 DLL 기반 런타임에는 /MD를 사용하는 것이 좋습니다.
# 사용법
간단한 테스트를 위해 Microsoft GDK의 기본 템플릿을 사용합니다. **Direct3D 12 Xbox 게임** 프로젝트를 만들고 빌드합니다. 그런 다음 레이아웃 디렉터리를 가리키는 **xbdepends**를 실행합니다.
```
xbdepends Direct3DGame1\Gaming.Xbox.Scarlett.x64\Layout\Image\Loose\Direct3DGame1.exe
```
이렇게 하면 다음 출력이 생성됩니다.
```
Microsoft (R) Xbox Binary Dependencies Tool
Copyright (C) Microsoft Corp.
reading 'Direct3DGame1.exe' [EXE]
INFO: Found 27 import modules
INFO: Use of Direct3D 12.X_S implies Scarlett target
INFO: Dependencies require 'VS 2019 (16.0)' or later C/C++ Runtime
```
자세한 정보 출력은 -v 스위치에 의해 트리거됩니다.
```
xbdepends -v Direct3DGame1\Gaming.Xbox.Scarlett.x64\Layout\Image\Loose\Direct3DGame1.exe
```
이렇게 하면 다음 출력이 생성됩니다.
```
reading 'Direct3DGame1.exe' [EXE]
Linker: 14.00
OS: 6.00
Subsystem: 2 (6.00)
INFO: Found 27 import modules
INFO: Use of Direct3D 12.X_S implies Scarlett target
INFO: Dependencies require 'VS 2019 (16.0)' or later C/C++ Runtime
DLL 'api-ms-win-core-debug-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-errorhandling-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-handle-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-heap-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-interlocked-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-libraryloader-l1-2-0.dll' (OS)
DLL 'api-ms-win-core-localization-l1-2-0.dll' (OS)
DLL 'api-ms-win-core-memory-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-processthreads-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-processthreads-l1-1-1.dll' (OS)
DLL 'api-ms-win-core-profile-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-psm-appnotify-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-psm-appnotify-l1-1-1.dll' (OS)
DLL 'api-ms-win-core-registry-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-registry-l2-1-0.dll' (OS)
DLL 'api-ms-win-core-rtlsupport-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-string-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-synch-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-sysinfo-l1-1-0.dll' (OS)
DLL 'd3d12_xs.dll' (D3D)
DLL 'ext-ms-win-rtcore-ntuser-message-l1-1-0.dll' (OS)
DLL 'ext-ms-win-rtcore-ntuser-window-ansi-l1-1-0.dll' (OS)
DLL 'ext-ms-win-rtcore-ntuser-window-l1-1-0.dll' (OS)
DLL 'PIXEvt.dll' (GameOS)
DLL 'ucrtbased.dll' (CRT)
DLL 'VCRUNTIME140_1D.dll' (CRT)
DLL 'VCRUNTIME140D.dll' (CRT)
```
/retail 스위치를 사용하여 실행할 수도 있는데, 그러면 이 빌드에서 디버그 CRT 항목을 사용 중임을 경고합니다.
```
xbdepends -retail Direct3DGame1\Gaming.Xbox.Scarlett.x64\Layout\Image\Loose\Direct3DGame1.exe
```
이렇게 하면 다음 출력이 생성됩니다.
```
reading 'Direct3DGame1.exe' [EXE]
INFO: Found 27 import modules
INFO: Use of Direct3D 12.X_S implies Scarlett target
ERROR: Using development only DLLs not for use in retail:
ucrtbased.dll
VCRUNTIME140_1D.dll
VCRUNTIME140D.dll
INFO: Dependencies require 'VS 2019 (16.0)' or later C/C++ Runtime
```
또한 이 도구는 와일드카드를 허용하며 재귀적으로 수행할 수 있습니다.
```
xbdepends -r Direct3DGame1\Gaming.Xbox.Scarlett.x64\Layout\Image\Loose\*.dll
```
# 구현
실제로 이 도구는 PE 가져오기 테이블 검사와 관련하여 Microsoft DUMPBIN 도구에서 수행 가능한 것과 동일한 종류의 작업을 수행합니다. 주요 차이점은 이 도구가 GDK 타이틀에 대한 몇 가지 기본 규칙과 지식을 적용하여 진단 출력을 생성한다는 점입니다.
PE 가져오기 테이블에 대한 자세한 내용은 다음을 참조하세요.
"*윈도우 내부: Win32 이동 가능 실행 파일 형식에 대한 심층 분석, 2부*". MSDN 매거진(2002년 3월)
<https://docs.microsoft.com/en-us/archive/msdn-magazine/2002/march/inside-windows-an-in-depth-look-into-the-win32-portable-executable-file-format-part-2>
# 업데이트 내역
| 날짜 | 참고 |
|---|---|
| 2021년 5월 | 2021년 4월 GDK 릴리스의 xgameplatform.lib를 사용한 초기 릴리스입니다. |
| 2022년 1월 | CMake 정리 및 사전 설정 파일 추가 |
| 2022년 11월 | CMake 3.20으로 업데이트됨 |

Просмотреть файл

@ -0,0 +1,158 @@
# xbdepends 示例
*此示例可用于 Microsoft 游戏开发工具包 2022 年 3 月)*
# 说明
这是用于 Windows 10/Windows 11 计算机的命令行,旨在帮助诊断 GDK 游戏的生成和启动问题。 具体而言,它分析 EXE 和 DLL 的导入模块,对其进行分类,并提供诊断输出。 对于 Xbox One 和 Scarlett 二进制文件,它还输出 xgameplatform.lib umbrella 库中使用但不包括的任何 OS API 的列表。
不带任何命令行选项运行将生成以下输出:
![文本说明已自动生成](./media/image1.png)
# 生成示例
作为一个简单的命令行工具,可以使用*游戏命令提示符*直接生成:
```
cl /EHsc /D_WIN32_WINNT=0x0A00 /Ox /MT xbdepends.cpp onecore.lib
```
可以使用 CMake 3.20 或更高版本:
```
cmake -B out .
cmake --build out
```
还有 CMake 预设:
```
cmake --list-presets
cmake --preset=x64-Debug
cmake --build out\build\x64-Debug
```
或者,可以从 VS IDE 打开 CMakeLists.txt需要 VS 2019 16.11 或 VS 2022
- 我们使用静态 Visual C++ Runtime 进行生成,以使该工具易于部署。 通常,我们建议将 /MD 用于面向游戏的基于 DLL 的运行时。
# 用法
对于简单的测试,我们将使用 Microsoft GDK 中的基本模板。 创建 **Direct3D 12 Xbox Game** 项目并生成它。 然后运行指向布局目录的 **xbdepends**
```
xbdepends Direct3DGame1\Gaming.Xbox.Scarlett.x64\Layout\Image\Loose\Direct3DGame1.exe
```
这将生成以下输出:
```
Microsoft (R) Xbox Binary Dependencies Tool
Copyright (C) Microsoft Corp.
reading 'Direct3DGame1.exe' [EXE]
INFO: Found 27 import modules
INFO: Use of Direct3D 12.X_S implies Scarlett target
INFO: Dependencies require 'VS 2019 (16.0)' or later C/C++ Runtime
```
-v 开关会触发更详细的输出:
```
xbdepends -v Direct3DGame1\Gaming.Xbox.Scarlett.x64\Layout\Image\Loose\Direct3DGame1.exe
```
这将生成以下输出:
```
reading 'Direct3DGame1.exe' [EXE]
Linker: 14.00
OS: 6.00
Subsystem: 2 (6.00)
INFO: Found 27 import modules
INFO: Use of Direct3D 12.X_S implies Scarlett target
INFO: Dependencies require 'VS 2019 (16.0)' or later C/C++ Runtime
DLL 'api-ms-win-core-debug-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-errorhandling-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-handle-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-heap-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-interlocked-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-libraryloader-l1-2-0.dll' (OS)
DLL 'api-ms-win-core-localization-l1-2-0.dll' (OS)
DLL 'api-ms-win-core-memory-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-processthreads-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-processthreads-l1-1-1.dll' (OS)
DLL 'api-ms-win-core-profile-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-psm-appnotify-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-psm-appnotify-l1-1-1.dll' (OS)
DLL 'api-ms-win-core-registry-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-registry-l2-1-0.dll' (OS)
DLL 'api-ms-win-core-rtlsupport-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-string-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-synch-l1-1-0.dll' (OS)
DLL 'api-ms-win-core-sysinfo-l1-1-0.dll' (OS)
DLL 'd3d12_xs.dll' (D3D)
DLL 'ext-ms-win-rtcore-ntuser-message-l1-1-0.dll' (OS)
DLL 'ext-ms-win-rtcore-ntuser-window-ansi-l1-1-0.dll' (OS)
DLL 'ext-ms-win-rtcore-ntuser-window-l1-1-0.dll' (OS)
DLL 'PIXEvt.dll' (GameOS)
DLL 'ucrtbased.dll' (CRT)
DLL 'VCRUNTIME140_1D.dll' (CRT)
DLL 'VCRUNTIME140D.dll' (CRT)
```
还可以使用 /retail 开关运行,它会警告你此生成正在使用调试 CRT 项:
```
xbdepends -retail Direct3DGame1\Gaming.Xbox.Scarlett.x64\Layout\Image\Loose\Direct3DGame1.exe
```
这将生成以下输出:
```
reading 'Direct3DGame1.exe' [EXE]
INFO: Found 27 import modules
INFO: Use of Direct3D 12.X_S implies Scarlett target
ERROR: Using development only DLLs not for use in retail:
ucrtbased.dll
VCRUNTIME140_1D.dll
VCRUNTIME140D.dll
INFO: Dependencies require 'VS 2019 (16.0)' or later C/C++ Runtime
```
该工具还接受通配符,并且可以通过递归方式执行:
```
xbdepends -r Direct3DGame1\Gaming.Xbox.Scarlett.x64\Layout\Image\Loose\*.dll
```
# 实现
实际上,在扫描 PE 导入表方面,此工具执行的操作类型与 Microsoft DUMPBIN 工具相同。 主要区别在于,此工具采用有关 GDK 游戏的一些基本规则和知识来生成诊断输出。
有关 PE 导入表的详细信息,请参阅:
&ldquo;*在 Windows 内部:深入了解 Win32 可移植可执行文件格式,第 2 部分*&rdquo;。 MSDN 杂志2002 年 3 月)
<https://docs.microsoft.com/en-us/archive/msdn-magazine/2002/march/inside-windows-an-in-depth-look-into-the-win32-portable-executable-file-format-part-2>
# 更新历史记录
| 日期 | 说明 |
|---|---|
| 2021 年 5 月 | 使用 2021 年 4 月 GDK 版本中的 xgameplatform.lib 的初始版本。 |
| 2022 年 1 月 | CMake 清理并添加了预设文件 |
| 2022 年 11 月 | 已更新到 CMake 3.20 |

Разница между файлами не показана из-за своего большого размера Загрузить разницу