diff --git a/.azuredevops/pipelines/DirectXTK-GitHub-Dev17.yml b/.azuredevops/pipelines/DirectXTK-GitHub-Dev17.yml
index 2325a22d3..2f5374375 100644
--- a/.azuredevops/pipelines/DirectXTK-GitHub-Dev17.yml
+++ b/.azuredevops/pipelines/DirectXTK-GitHub-Dev17.yml
@@ -42,59 +42,6 @@ variables:
value: $(ADOFeedGUID)
jobs:
- - job: DESKTOP_BUILD
- displayName: 'Windows Desktop'
- timeoutInMinutes: 120
- cancelTimeoutInMinutes: 1
- strategy:
- maxParallel: 3
- matrix:
- Release_arm64:
- BuildPlatform: ARM64
- BuildConfiguration: Release
- Debug_arm64:
- BuildPlatform: ARM64
- BuildConfiguration: Debug
- Release_x64:
- BuildPlatform: x64
- BuildConfiguration: Release
- Debug_x64:
- BuildPlatform: x64
- BuildConfiguration: Debug
- Release_x86:
- BuildPlatform: x86
- BuildConfiguration: Release
- Debug_x86:
- BuildPlatform: x86
- BuildConfiguration: Debug
- Release_Mixed:
- BuildPlatform: 'Mixed Platforms'
- BuildConfiguration: Release
- Debug_Mixed:
- BuildPlatform: 'Mixed Platforms'
- BuildConfiguration: Debug
- steps:
- - checkout: self
- clean: true
- fetchTags: false
- - task: VSBuild@1
- displayName: Build solution DirectXTK_Desktop_2022.sln
- inputs:
- solution: DirectXTK_Desktop_2022.sln
- msbuildArgs: /p:PreferredToolArchitecture=x64
- platform: '$(BuildPlatform)'
- configuration: '$(BuildConfiguration)'
- msbuildArchitecture: x64
- condition: ne(variables['BuildPlatform'], 'ARM64')
- - task: VSBuild@1
- displayName: Build solution DirectXTK_Desktop_2022_Win10.sln
- inputs:
- solution: DirectXTK_Desktop_2022_Win10.sln
- msbuildArgs: /p:PreferredToolArchitecture=x64
- platform: '$(BuildPlatform)'
- configuration: '$(BuildConfiguration)'
- msbuildArchitecture: x64
-
- job: UWP_BUILD
displayName: 'Universal Windows Platform (UWP)'
timeoutInMinutes: 120
diff --git a/.azuredevops/pipelines/DirectXTK-GitHub-Test-Dev17.yml b/.azuredevops/pipelines/DirectXTK-GitHub-Test-Dev17.yml
index baa17031a..4851b80a8 100644
--- a/.azuredevops/pipelines/DirectXTK-GitHub-Test-Dev17.yml
+++ b/.azuredevops/pipelines/DirectXTK-GitHub-Test-Dev17.yml
@@ -48,63 +48,6 @@ variables:
value: $(ADOFeedGUID)
jobs:
- - job: DESKTOP_BUILD
- displayName: 'Windows Desktop'
- timeoutInMinutes: 60
- cancelTimeoutInMinutes: 1
- workspace:
- clean: all
- strategy:
- maxParallel: 3
- matrix:
- Release_arm64:
- BuildPlatform: ARM64
- BuildConfiguration: Release
- Debug_arm64:
- BuildPlatform: ARM64
- BuildConfiguration: Debug
- Release_x64:
- BuildPlatform: x64
- BuildConfiguration: Release
- Debug_x64:
- BuildPlatform: x64
- BuildConfiguration: Debug
- Release_x86:
- BuildPlatform: x86
- BuildConfiguration: Release
- Debug_x86:
- BuildPlatform: x86
- BuildConfiguration: Debug
- steps:
- - checkout: self
- clean: true
- fetchTags: false
- fetchDepth: 1
- path: 's'
- - checkout: testRepo
- displayName: Fetch Tests
- clean: true
- fetchTags: false
- fetchDepth: 1
- path: 's/Tests'
- - task: VSBuild@1
- displayName: Build solution DirectXTK_Tests_Desktop_2022.sln
- inputs:
- solution: Tests/DirectXTK_Tests_Desktop_2022.sln
- msbuildArgs: /p:PreferredToolArchitecture=x64
- platform: '$(BuildPlatform)'
- configuration: '$(BuildConfiguration)'
- msbuildArchitecture: x64
- condition: ne(variables['BuildPlatform'], 'ARM64')
- - task: VSBuild@1
- displayName: Build solution DirectXTK_Tests_Desktop_2022_Win10.sln
- inputs:
- solution: Tests/DirectXTK_Tests_Desktop_2022_Win10.sln
- msbuildArgs: /p:PreferredToolArchitecture=x64
- platform: '$(BuildPlatform)'
- configuration: '$(BuildConfiguration)'
- msbuildArchitecture: x64
-
- job: UWP_BUILD
displayName: 'Universal Windows Platform (UWP)'
timeoutInMinutes: 120
diff --git a/.azuredevops/pipelines/DirectXTK-GitHub-Test.yml b/.azuredevops/pipelines/DirectXTK-GitHub-Test.yml
deleted file mode 100644
index 20e24ed9b..000000000
--- a/.azuredevops/pipelines/DirectXTK-GitHub-Test.yml
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright (c) Microsoft Corporation.
-# Licensed under the MIT License.
-#
-# https://go.microsoft.com/fwlink/?LinkId=248929
-
-# Builds the library and test suite.
-
-schedules:
- - cron: "30 2 * * *"
- displayName: 'Nightly build'
- branches:
- include:
- - main
-
-# GitHub Actions handles test suite for CI/PR
-trigger: none
-pr:
- branches:
- include:
- - main
- paths:
- include:
- - '.azuredevops/pipelines/DirectXTK-GitHub-Test.yml'
-
-resources:
- repositories:
- - repository: self
- type: git
- ref: refs/heads/main
- - repository: testRepo
- name: walbourn/directxtktest
- type: github
- endpoint: microsoft
- ref: refs/heads/main
-
-name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)
-
-pool:
- vmImage: windows-2022
-
-variables:
- - group: dxtk-shared-variables
- - name: Codeql.Enabled
- value: false
- - name: GUID_FEED
- value: $(ADOFeedGUID)
-
-jobs:
- - job: DESKTOP_BUILD
- displayName: 'Windows Desktop'
- timeoutInMinutes: 120
- cancelTimeoutInMinutes: 1
- workspace:
- clean: all
- strategy:
- maxParallel: 2
- matrix:
- Release_x64:
- BuildPlatform: x64
- BuildConfiguration: Release
- Debug_x64:
- BuildPlatform: x64
- BuildConfiguration: Debug
- Release_x86:
- BuildPlatform: x86
- BuildConfiguration: Release
- Debug_x86:
- BuildPlatform: x86
- BuildConfiguration: Debug
- steps:
- - checkout: self
- clean: true
- fetchTags: false
- fetchDepth: 1
- path: 's'
- - checkout: testRepo
- displayName: Fetch Tests
- clean: true
- fetchTags: false
- fetchDepth: 1
- path: 's/Tests'
- - task: VSBuild@1
- displayName: Build solution DirectXTK_Tests_Desktop_2019.sln
- inputs:
- solution: Tests/DirectXTK_Tests_Desktop_2019.sln
- msbuildArgs: /p:PreferredToolArchitecture=x64
- platform: '$(BuildPlatform)'
- configuration: '$(BuildConfiguration)'
- - task: VSBuild@1
- displayName: Build solution DirectXTK_Tests_Desktop_2019_Win10.sln
- inputs:
- solution: Tests/DirectXTK_Tests_Desktop_2019_Win10.sln
- msbuildArgs: /p:PreferredToolArchitecture=x64
- platform: '$(BuildPlatform)'
- configuration: '$(BuildConfiguration)'
diff --git a/.azuredevops/pipelines/DirectXTK-GitHub.yml b/.azuredevops/pipelines/DirectXTK-GitHub.yml
deleted file mode 100644
index da723b90a..000000000
--- a/.azuredevops/pipelines/DirectXTK-GitHub.yml
+++ /dev/null
@@ -1,87 +0,0 @@
-# Copyright (c) Microsoft Corporation.
-# Licensed under the MIT License.
-#
-# http://go.microsoft.com/fwlink/?LinkId=248929
-
-# Builds the library for Windows Desktop.
-
-schedules:
- - cron: "0 2 * * *"
- displayName: 'Nightly build'
- branches:
- include:
- - main
-
-# GitHub Actions handles MSBuild for CI/PR
-trigger: none
-pr:
- branches:
- include:
- - main
- paths:
- include:
- - '.azuredevops/pipelines/DirectXTK-GitHub.yml'
- - Src/Shaders/CompileShaders.cmd
-
-resources:
- repositories:
- - repository: self
- type: git
- ref: refs/heads/main
-
-name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)
-
-pool:
- vmImage: windows-2022
-
-variables:
- - group: dxtk-shared-variables
- - name: Codeql.Enabled
- value: false
- - name: GUID_FEED
- value: $(ADOFeedGUID)
-
-jobs:
- - job: DESKTOP_BUILD
- displayName: 'Windows Desktop'
- timeoutInMinutes: 120
- cancelTimeoutInMinutes: 1
- strategy:
- maxParallel: 2
- matrix:
- Release_x64:
- BuildPlatform: x64
- BuildConfiguration: Release
- Debug_x64:
- BuildPlatform: x64
- BuildConfiguration: Debug
- Release_x86:
- BuildPlatform: x86
- BuildConfiguration: Release
- Debug_x86:
- BuildPlatform: x86
- BuildConfiguration: Debug
- Release_Mixed:
- BuildPlatform: 'Mixed Platforms'
- BuildConfiguration: Release
- Debug_Mixed:
- BuildPlatform: 'Mixed Platforms'
- BuildConfiguration: Debug
- steps:
- - checkout: self
- clean: true
- fetchTags: false
- - task: VSBuild@1
- displayName: Build solution DirectXTK_Desktop_2019.sln
- inputs:
- solution: DirectXTK_Desktop_2019.sln
- msbuildArgs: /p:PreferredToolArchitecture=x64
- platform: '$(BuildPlatform)'
- configuration: '$(BuildConfiguration)'
- - task: VSBuild@1
- displayName: Build solution DirectXTK_Desktop_2019_Win10.sln
- inputs:
- solution: DirectXTK_Desktop_2019_Win10.sln
- msbuildArgs: /p:PreferredToolArchitecture=x64
- platform: '$(BuildPlatform)'
- configuration: '$(BuildConfiguration)'
diff --git a/.github/linters/actionlint.yml b/.github/linters/actionlint.yml
index 8f70803a9..5a7201762 100644
--- a/.github/linters/actionlint.yml
+++ b/.github/linters/actionlint.yml
@@ -2,3 +2,4 @@ self-hosted-runner:
# Workaround until linter is updated
labels:
- windows-11-arm
+ - windows-2025-vs2026
diff --git a/.github/workflows/clangcl.yml b/.github/workflows/clangcl.yml
new file mode 100644
index 000000000..5c1866f7e
--- /dev/null
+++ b/.github/workflows/clangcl.yml
@@ -0,0 +1,144 @@
+# Copyright (c) Microsoft Corporation.
+# Licensed under the MIT License.
+#
+# http://go.microsoft.com/fwlink/?LinkId=248929
+
+name: 'CMake (clang-cl)'
+
+on:
+ push:
+ branches: "main"
+ paths-ignore:
+ - '*.md'
+ - LICENSE
+ - '.azuredevops/**'
+ - '.nuget/*'
+ - build/*.cmd
+ - build/*.json
+ - build/*.props
+ - build/*.ps1
+ - build/*.targets
+ pull_request:
+ branches: "main"
+ paths-ignore:
+ - '*.md'
+ - LICENSE
+ - '.azuredevops/**'
+ - '.nuget/*'
+ - build/*.cmd
+ - build/*.json
+ - build/*.props
+ - build/*.ps1
+ - build/*.targets
+
+permissions:
+ contents: read
+
+jobs:
+ build:
+ runs-on: windows-2022
+
+ strategy:
+ fail-fast: false
+
+ matrix:
+ build_type: [x64-Debug-Win10-Clang, x64-Release-Win10-Clang]
+ arch: [amd64]
+ include:
+ - build_type: x86-Debug-Win10-Clang
+ arch: amd64_x86
+ - build_type: x86-Release-Win10-Clang
+ arch: amd64_x86
+ - build_type: arm64-Debug-Clang
+ arch: amd64_arm64
+ - build_type: arm64-Release-Clang
+ arch: amd64_arm64
+
+ steps:
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+
+ - name: Clone test repository
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ repository: walbourn/directxtktest
+ path: Tests
+ ref: main
+
+ - name: 'Install Ninja'
+ run: choco install ninja
+
+ - uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
+ with:
+ arch: ${{ matrix.arch }}
+
+ - name: 'Configure CMake'
+ working-directory: ${{ github.workspace }}
+ run: >
+ cmake --preset=${{ matrix.build_type }} -DBUILD_TESTING=ON
+
+ - name: 'Build'
+ working-directory: ${{ github.workspace }}
+ run: cmake --build out\build\${{ matrix.build_type }}
+
+ - name: 'Clean up'
+ working-directory: ${{ github.workspace }}
+ run: Remove-Item -Path out -Recurse -Force
+
+ - name: 'Configure CMake (DLL)'
+ working-directory: ${{ github.workspace }}
+ run: >
+ cmake --preset=${{ matrix.build_type }} -DBUILD_TESTING=ON
+ -DBUILD_SHARED_LIBS=ON
+
+ - name: 'Build (DLL)'
+ working-directory: ${{ github.workspace }}
+ run: cmake --build out\build\${{ matrix.build_type }}
+
+ build2026:
+ runs-on: windows-2025-vs2026
+
+ strategy:
+ fail-fast: false
+
+ matrix:
+ build_type: [x64-Debug-Win10-Clang, x64-Release-Win10-Clang]
+ arch: [amd64]
+ include:
+ - build_type: x86-Debug-Win10-Clang
+ arch: amd64_x86
+ - build_type: x86-Release-Win10-Clang
+ arch: amd64_x86
+ - build_type: arm64-Debug-Clang
+ arch: amd64_arm64
+ - build_type: arm64-Release-Clang
+ arch: amd64_arm64
+
+ steps:
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+
+ - name: 'Install Ninja'
+ run: choco install ninja
+
+ - uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
+ with:
+ arch: ${{ matrix.arch }}
+
+ - name: 'Configure CMake'
+ working-directory: ${{ github.workspace }}
+ run: cmake --preset=${{ matrix.build_type }}
+
+ - name: 'Build'
+ working-directory: ${{ github.workspace }}
+ run: cmake --build out\build\${{ matrix.build_type }}
+
+ - name: 'Clean up'
+ working-directory: ${{ github.workspace }}
+ run: Remove-Item -Path out -Recurse -Force
+
+ - name: 'Configure CMake (DLL)'
+ working-directory: ${{ github.workspace }}
+ run: cmake --preset=${{ matrix.build_type }} -DBUILD_SHARED_LIBS=ON
+
+ - name: 'Build (DLL)'
+ working-directory: ${{ github.workspace }}
+ run: cmake --build out\build\${{ matrix.build_type }}
diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml
index 9a11d71c0..5241ad3c1 100644
--- a/.github/workflows/msbuild.yml
+++ b/.github/workflows/msbuild.yml
@@ -42,7 +42,7 @@ jobs:
platform: ARM64
steps:
- - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0
@@ -82,3 +82,25 @@ jobs:
msbuild /m /p:Configuration=${{ matrix.build_type }} /p:Platform=${{ matrix.platform }}
/p:SpectreMitigation=Spectre
DirectXTK_Desktop_${{ matrix.vs }}_Win10.sln
+
+ build2026:
+ runs-on: windows-2025-vs2026
+
+ strategy:
+ fail-fast: false
+
+ matrix:
+ build_type: [Debug, Release]
+ platform: [x86, x64, ARM64]
+
+ steps:
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+
+ - name: Add MSBuild to PATH
+ uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0
+
+ - name: 'Build'
+ working-directory: ${{ github.workspace }}
+ run: >
+ msbuild /m /p:Configuration=${{ matrix.build_type }} /p:Platform=${{ matrix.platform }}
+ DirectXTK_Desktop_2026.slnx
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index c389b1366..12c0fe4a8 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -59,18 +59,6 @@ jobs:
- toolver: '14'
build_type: x86-Release
arch: amd64_x86
- - toolver: '14'
- build_type: x64-Debug-Clang
- arch: amd64
- - toolver: '14'
- build_type: x64-Release-Clang
- arch: amd64
- - toolver: '14'
- build_type: x86-Debug-Clang
- arch: amd64_x86
- - toolver: '14'
- build_type: x86-Release-Clang
- arch: amd64_x86
- toolver: '14'
build_type: arm64-Debug
arch: amd64_arm64
@@ -85,10 +73,10 @@ jobs:
arch: amd64_arm64
steps:
- - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Clone test repository
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
repository: walbourn/directxtktest
path: Tests
@@ -130,3 +118,73 @@ jobs:
- name: 'Build (DLL)'
working-directory: ${{ github.workspace }}
run: cmake --build out\build\${{ matrix.build_type }}
+
+ build2026:
+ runs-on: windows-2025-vs2026
+ timeout-minutes: 20
+
+ strategy:
+ fail-fast: false
+
+ matrix:
+ build_type: [x64-Debug-Win10, x64-Release-Win10]
+ arch: [amd64]
+ include:
+ - build_type: x86-Debug-Win10
+ arch: amd64_x86
+ - build_type: x86-Release-Win10
+ arch: amd64_x86
+ - build_type: x86-Debug-Win10
+ arch: amd64_x86
+ - build_type: x86-Release-Win10
+ arch: amd64_x86
+ - build_type: arm64-Debug
+ arch: amd64_arm64
+ - build_type: arm64-Release
+ arch: amd64_arm64
+
+ steps:
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+
+ - name: Clone test repository
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ repository: walbourn/directxtktest
+ path: Tests
+ ref: main
+
+ - name: 'Install Ninja'
+ run: choco install ninja
+
+ - uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
+ with:
+ arch: ${{ matrix.arch }}
+
+ - name: 'Configure CMake'
+ working-directory: ${{ github.workspace }}
+ run: >
+ cmake --preset=${{ matrix.build_type }} -DBUILD_TESTING=ON -DBUILD_TOOLS=OFF
+
+ - name: 'Build'
+ working-directory: ${{ github.workspace }}
+ run: cmake --build out\build\${{ matrix.build_type }}
+
+ - if: (matrix.build_type == 'x64-Release') || (matrix.build_type == 'x86-Release')
+ timeout-minutes: 10
+ name: 'Test (Math only)'
+ working-directory: ${{ github.workspace }}
+ run: ctest --preset=${{ matrix.build_type }} -L Math
+
+ - name: 'Clean up'
+ working-directory: ${{ github.workspace }}
+ run: Remove-Item -Path out -Recurse -Force
+
+ - name: 'Configure CMake (DLL)'
+ working-directory: ${{ github.workspace }}
+ run: >
+ cmake --preset=${{ matrix.build_type }} -DBUILD_TESTING=ON -DBUILD_TOOLS=OFF
+ -DBUILD_SHARED_LIBS=ON
+
+ - name: 'Build (DLL)'
+ working-directory: ${{ github.workspace }}
+ run: cmake --build out\build\${{ matrix.build_type }}
diff --git a/.github/workflows/win10.yml b/.github/workflows/win10.yml
index 0e23bfe35..9211fb24b 100644
--- a/.github/workflows/win10.yml
+++ b/.github/workflows/win10.yml
@@ -70,27 +70,74 @@ jobs:
- toolver: '14'
build_type: arm64ec-Release
arch: amd64_arm64
- - toolver: '14'
- build_type: x64-Debug-Win10-Clang
- arch: amd64
- - toolver: '14'
- build_type: x64-Release-Win10-Clang
- arch: amd64
- - toolver: '14'
- build_type: x86-Debug-Win10-Clang
+
+ steps:
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+
+ - name: 'Install Ninja'
+ run: choco install ninja
+
+ - uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
+ with:
+ arch: ${{ matrix.arch }}
+ toolset: ${{ matrix.toolver }}
+
+ - name: 'Configure CMake'
+ working-directory: ${{ github.workspace }}
+ run: cmake --preset=${{ matrix.build_type }}
+
+ - name: 'Build'
+ working-directory: ${{ github.workspace }}
+ run: cmake --build out\build\${{ matrix.build_type }}
+
+ - name: 'Clean up'
+ working-directory: ${{ github.workspace }}
+ run: Remove-Item -Path out -Recurse -Force
+
+ - if: matrix.arch != 'amd64_arm64'
+ name: 'Configure CMake (Spectre)'
+ working-directory: ${{ github.workspace }}
+ run: cmake --preset=${{ matrix.build_type }} -DENABLE_SPECTRE_MITIGATION=ON
+
+ - if: matrix.arch != 'amd64_arm64'
+ name: 'Build (Spectre)'
+ working-directory: ${{ github.workspace }}
+ run: cmake --build out\build\${{ matrix.build_type }}
+
+ - if: matrix.arch != 'amd64_arm64'
+ name: 'Clean up'
+ working-directory: ${{ github.workspace }}
+ run: Remove-Item -Path out -Recurse -Force
+
+ - name: 'Configure CMake (DLL)'
+ working-directory: ${{ github.workspace }}
+ run: cmake --preset=${{ matrix.build_type }} -DBUILD_SHARED_LIBS=ON
+
+ - name: 'Build (DLL)'
+ working-directory: ${{ github.workspace }}
+ run: cmake --build out\build\${{ matrix.build_type }}
+
+ build2026:
+ runs-on: windows-2025-vs2026
+
+ strategy:
+ fail-fast: false
+
+ matrix:
+ build_type: [x64-Debug-Win10, x64-Release-Win10]
+ arch: [amd64]
+ include:
+ - build_type: x86-Debug-Win10
arch: amd64_x86
- - toolver: '14'
- build_type: x86-Release-Win10-Clang
+ - build_type: x86-Release-Win10
arch: amd64_x86
- - toolver: '14'
- build_type: arm64-Debug-Clang
+ - build_type: arm64-Debug
arch: amd64_arm64
- - toolver: '14'
- build_type: arm64-Release-Clang
+ - build_type: arm64-Release
arch: amd64_arm64
steps:
- - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: 'Install Ninja'
run: choco install ninja
@@ -98,7 +145,6 @@ jobs:
- uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
with:
arch: ${{ matrix.arch }}
- toolset: ${{ matrix.toolver }}
- name: 'Configure CMake'
working-directory: ${{ github.workspace }}
diff --git a/DirectXTK_Desktop_2026.slnx b/DirectXTK_Desktop_2026.slnx
new file mode 100644
index 000000000..18982815e
--- /dev/null
+++ b/DirectXTK_Desktop_2026.slnx
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/DirectXTK_Desktop_2026.vcxproj b/DirectXTK_Desktop_2026.vcxproj
new file mode 100644
index 000000000..bf6e87bae
--- /dev/null
+++ b/DirectXTK_Desktop_2026.vcxproj
@@ -0,0 +1,455 @@
+
+
+
+
+ Debug
+ ARM64
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ ARM64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create
+ Create
+ Create
+ Create
+ Create
+ Create
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Document
+
+
+
+
+ Document
+
+
+ Document
+
+
+ Document
+
+
+ Document
+
+
+ Document
+
+
+ Document
+
+
+ Document
+
+
+ Document
+
+
+
+
+ Document
+
+
+
+
+ Document
+
+
+ Document
+
+
+
+
+ Document
+
+
+
+
+ Document
+
+
+
+ {E0B52AE7-E160-4D32-BF3F-910B785E5A8E}
+ Win32Proj
+ DirectXTK
+ 10.0
+ x64
+
+
+
+ StaticLibrary
+ true
+ v145
+ Unicode
+
+
+ StaticLibrary
+ true
+ v145
+ Unicode
+
+
+ StaticLibrary
+ true
+ v145
+ Unicode
+
+
+ StaticLibrary
+ false
+ v145
+ Unicode
+
+
+ StaticLibrary
+ false
+ v145
+ Unicode
+
+
+ StaticLibrary
+ false
+ v145
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ DirectXTK
+
+
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ DirectXTK
+
+
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ DirectXTK
+
+
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ DirectXTK
+
+
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ DirectXTK
+
+
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ DirectXTK
+
+
+ Bin\Desktop_2026\$(Platform)\$(Configuration)Spectre\
+ Bin\Desktop_2026\$(Platform)\$(Configuration)Spectre\
+ DirectXTK_Spectre
+
+
+
+ Use
+ EnableAllWarnings
+ Disabled
+ _WIN32_WINNT=0x0A00;WIN32;_DEBUG;_LIB;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)
+ pch.h
+ $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories)
+ Fast
+ $(IntDir)$(TargetName).pdb
+ true
+ true
+ /Zc:__cplusplus %(AdditionalOptions)
+ ProgramDatabase
+ false
+ Level4
+
+
+ Windows
+ true
+
+
+
+
+ Use
+ EnableAllWarnings
+ Disabled
+ _WIN32_WINNT=0x0A00;WIN32;_DEBUG;_LIB;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)
+ pch.h
+ $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories)
+ Fast
+ $(IntDir)$(TargetName).pdb
+ true
+ true
+ /Zc:__cplusplus %(AdditionalOptions)
+ ProgramDatabase
+ false
+ Level4
+
+
+ Windows
+ true
+
+
+
+
+ Use
+ EnableAllWarnings
+ Disabled
+ _WIN32_WINNT=0x0A00;WIN32;_DEBUG;_LIB;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)
+ pch.h
+ $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories)
+ Fast
+ StreamingSIMDExtensions2
+ $(IntDir)$(TargetName).pdb
+ true
+ true
+ /Zc:__cplusplus %(AdditionalOptions)
+ ProgramDatabase
+ false
+ Level4
+
+
+ Windows
+ true
+
+
+
+
+ EnableAllWarnings
+ Use
+ MaxSpeed
+ _WIN32_WINNT=0x0A00;WIN32;NDEBUG;_LIB;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)
+ pch.h
+ $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories)
+ Fast
+ $(IntDir)$(TargetName).pdb
+ true
+ true
+ /Zc:__cplusplus %(AdditionalOptions)
+ Level4
+ true
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+ EnableAllWarnings
+ Use
+ MaxSpeed
+ _WIN32_WINNT=0x0A00;WIN32;NDEBUG;_LIB;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)
+ pch.h
+ $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories)
+ Fast
+ $(IntDir)$(TargetName).pdb
+ true
+ true
+ /Zc:__cplusplus %(AdditionalOptions)
+ Level4
+ true
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+ EnableAllWarnings
+ Use
+ MaxSpeed
+ _WIN32_WINNT=0x0A00;WIN32;NDEBUG;_LIB;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)
+ pch.h
+ $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories)
+ Fast
+ StreamingSIMDExtensions2
+ $(IntDir)$(TargetName).pdb
+ true
+ true
+ /Zc:__cplusplus %(AdditionalOptions)
+ Level4
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
+
+ <_ATGFXCPath>$(WindowsSDK_ExecutablePath_x64.Split(';')[0])
+ <_ATGFXCPath>$(_ATGFXCPath.Replace("x64",""))
+ <_ATGFXCPath Condition="'$(_ATGFXCPath)' != '' and !HasTrailingSlash('$(_ATGFXCPath)')">$(_ATGFXCPath)\
+ <_ATGFXCVer>$([System.Text.RegularExpressions.Regex]::Match($(_ATGFXCPath), '10\.0\.\d+\.0'))
+ <_ATGFXCVer Condition="'$(_ATGFXCVer)' != '' and !HasTrailingSlash('$(_ATGFXCVer)')">$(_ATGFXCVer)\
+
+
+
+ <_ATGFXCPath />
+ <_ATGFXCVer />
+
+
+
+
+ <_ATGShaderHeaders Include="$(ProjectDir)src/Shaders/Compiled/*.inc" Exclude="$(ProjectDir)src/Shaders/Compiled/*Xbox*.inc" />
+ <_ATGShaderSymbols Include="$(ProjectDir)src/Shaders/Compiled/*.pdb" Exclude="$(ProjectDir)src/Shaders/Compiled/*Xbox*.pdb" />
+
+
+
+
+
\ No newline at end of file
diff --git a/DirectXTK_Desktop_2026.vcxproj.filters b/DirectXTK_Desktop_2026.vcxproj.filters
new file mode 100644
index 000000000..3eead7e89
--- /dev/null
+++ b/DirectXTK_Desktop_2026.vcxproj.filters
@@ -0,0 +1,363 @@
+
+
+
+
+ {771f5f80-d173-49c3-8afb-790e8f7cb0ce}
+
+
+ {c52e19b6-8703-49a1-9b36-101a05b4745d}
+
+
+ {e07ba3bc-b69f-4ded-9ffa-3b47427e9fef}
+
+
+ {28e934ed-a6d7-4c30-b064-c72c50c99626}
+
+
+ {28d5fa16-99e2-471c-8cd8-2020e81f0024}
+
+
+ {34676173-31f5-4435-b90d-a0ad4f7d163c}
+
+
+ {5d47b946-09b9-4477-934f-ca45fba9845d}
+
+
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Src
+
+
+ Src
+
+
+ Inc
+
+
+ Src
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Audio
+
+
+ Audio
+
+
+ Audio
+
+
+ Audio
+
+
+ Inc\Shared
+
+
+ Inc\Shared
+
+
+ Inc\Shared
+
+
+ Inc\Shared
+
+
+ Inc\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Inc
+
+
+ Inc
+
+
+ Src\Shared
+
+
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Audio
+
+
+ Audio
+
+
+ Audio
+
+
+ Audio
+
+
+ Audio
+
+
+ Audio
+
+
+ Audio
+
+
+ Audio
+
+
+ Src
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Audio
+
+
+ Src
+
+
+ Src
+
+
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders\Shared
+
+
+ Src\Shaders\Shared
+
+
+ Src\Shaders\Shared
+
+
+ Src\Shared
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders\Shared
+
+
+ Src\Shaders
+
+
+ Src\Shaders\Shared
+
+
+ Src\Shaders
+
+
+ Src\Shaders\Shared
+
+
+
+ Src\Shaders\Shared
+
+
+
\ No newline at end of file
diff --git a/XWBTool/xwbtool_Desktop_2026.vcxproj b/XWBTool/xwbtool_Desktop_2026.vcxproj
new file mode 100644
index 000000000..5b164ebea
--- /dev/null
+++ b/XWBTool/xwbtool_Desktop_2026.vcxproj
@@ -0,0 +1,270 @@
+
+
+
+
+ Debug
+ ARM64
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ ARM64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ {C7AB4186-54B2-4244-A533-77494763EA1D}
+ Win32Proj
+ XWBTool
+ 10.0
+
+
+
+ Application
+ true
+ v145
+ Unicode
+ false
+
+
+ Application
+ true
+ v145
+ Unicode
+ false
+
+
+ Application
+ true
+ v145
+ Unicode
+ false
+
+
+ Application
+ false
+ v145
+ Unicode
+
+
+ Application
+ false
+ v145
+ Unicode
+
+
+ Application
+ false
+ v145
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ XWBTool
+
+
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ XWBTool
+
+
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ XWBTool
+
+
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ XWBTool
+
+
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ XWBTool
+
+
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ Bin\Desktop_2026\$(Platform)\$(Configuration)\
+ XWBTool
+
+
+
+ Level4
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0A00;%(PreprocessorDefinitions)
+ ..\Audio;..\Src;%(AdditionalIncludeDirectories)
+ true
+ false
+ /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions)
+ 26812
+ ProgramDatabase
+ stdcpp17
+
+
+ Console
+ true
+ true
+ kernel32.lib;user32.lib;version.lib;%(AdditionalDependencies)
+ true
+
+
+
+
+ Level4
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0A00;%(PreprocessorDefinitions)
+ ..\Audio;..\Src;%(AdditionalIncludeDirectories)
+ true
+ false
+ /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions)
+ 26812
+ ProgramDatabase
+ stdcpp17
+
+
+ Console
+ true
+ kernel32.lib;user32.lib;version.lib;%(AdditionalDependencies)
+ true
+
+
+
+
+ Level4
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0A00;%(PreprocessorDefinitions)
+ ..\Audio;..\Src;%(AdditionalIncludeDirectories)
+ true
+ false
+ /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions)
+ 26812
+ ProgramDatabase
+ stdcpp17
+
+
+ Console
+ true
+ kernel32.lib;user32.lib;version.lib;%(AdditionalDependencies)
+
+
+
+
+ Level4
+ MaxSpeed
+ WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0A00;%(PreprocessorDefinitions)
+ ..\Audio;..\Src;%(AdditionalIncludeDirectories)
+ Guard
+ true
+ false
+ /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions)
+ 26812
+ stdcpp17
+
+
+ Console
+ true
+ true
+ true
+ true
+ kernel32.lib;user32.lib;version.lib;%(AdditionalDependencies)
+ true
+
+
+
+
+ Level4
+ MaxSpeed
+ WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0A00;%(PreprocessorDefinitions)
+ ..\Audio;..\Src;%(AdditionalIncludeDirectories)
+ Guard
+ true
+ false
+ /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions)
+ 26812
+ stdcpp17
+
+
+ Console
+ true
+ true
+ true
+ kernel32.lib;user32.lib;version.lib;%(AdditionalDependencies)
+ true
+
+
+
+
+ Level4
+ MaxSpeed
+ WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0A00;%(PreprocessorDefinitions)
+ ..\Audio;..\Src;%(AdditionalIncludeDirectories)
+ Guard
+ true
+ false
+ /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions)
+ 26812
+ stdcpp17
+
+
+ Console
+ true
+ true
+ true
+ kernel32.lib;user32.lib;version.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/XWBTool/xwbtool_Desktop_2026.vcxproj.filters b/XWBTool/xwbtool_Desktop_2026.vcxproj.filters
new file mode 100644
index 000000000..f38338629
--- /dev/null
+++ b/XWBTool/xwbtool_Desktop_2026.vcxproj.filters
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {b97e6e90-0253-4558-b6d8-ce1701c2ecb0}
+
+
+
+
+ Resource Files
+
+
+
+
+ Resource Files
+
+
+
\ No newline at end of file
diff --git a/build/CompilerAndLinker.cmake b/build/CompilerAndLinker.cmake
index c2220f536..72ff2a914 100644
--- a/build/CompilerAndLinker.cmake
+++ b/build/CompilerAndLinker.cmake
@@ -205,6 +205,10 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
list(APPEND COMPILER_SWITCHES $<$:/Zc:templateScope>)
endif()
endif()
+
+ if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.50)
+ list(APPEND COMPILER_SWITCHES /Zc:u8EscapeEncoding)
+ endif()
endif()
#--- Windows API Family
diff --git a/build/downloadbuild.ps1 b/build/downloadbuild.ps1
index 88b613350..5e68125cc 100644
--- a/build/downloadbuild.ps1
+++ b/build/downloadbuild.ps1
@@ -55,7 +55,7 @@ try
}
catch
{
- Write-Error "##[error]Build $BuildId not found!" -ErrorAction Continue
+ Write-Error "##[error]Build $BuildId not found!" -ErrorAction Stop
}
$ProgressPreference = 'SilentlyContinue'
@@ -85,7 +85,7 @@ foreach ($artifact in $responsearm64) {
}
catch
{
- Write-Error "##[error]Failed to download $artifactName!" -ErrorAction Continue
+ Write-Error "##[error]Failed to download $artifactName!" -ErrorAction Stop
}
try
@@ -95,7 +95,7 @@ foreach ($artifact in $responsearm64) {
}
catch
{
- Write-Error "##[error]Failed to extract $artifactName!" -ErrorAction Continue
+ Write-Error "##[error]Failed to extract $artifactName!" -ErrorAction Stop
}
}
@@ -112,7 +112,7 @@ foreach ($artifact in $responseamd64) {
}
catch
{
- Write-Error "##[error]Failed to download $artifactName!" -ErrorAction Continue
+ Write-Error "##[error]Failed to download $artifactName!" -ErrorAction Stop
}
try
@@ -122,7 +122,7 @@ foreach ($artifact in $responseamd64) {
}
catch
{
- Write-Error "##[error]Failed to extract $artifactName!" -ErrorAction Continue
+ Write-Error "##[error]Failed to extract $artifactName!" -ErrorAction Stop
}
}
diff --git a/build/promotenuget.ps1 b/build/promotenuget.ps1
index e6c20839c..fb24b20d9 100644
--- a/build/promotenuget.ps1
+++ b/build/promotenuget.ps1
@@ -33,7 +33,7 @@ param(
# Parse PAT
if ($PAT.Length -eq 0) {
- $PAT = $env:ADO_PERSONAL_ACCESS_TOKEN
+ $PAT = [string]$env:ADO_PERSONAL_ACCESS_TOKEN
if ($PAT.Length -eq 0) {
Write-Error "##[error]This script requires a valid ADO Personal Access Token!" -ErrorAction Stop