From 6aaedb813fa11ba0679c3051bc2eb28646b9506c Mon Sep 17 00:00:00 2001
From: 3gg <3gg@shellblade.net>
Date: Sat, 30 Aug 2025 16:53:58 -0700
Subject: Update to SDL3
---
src/contrib/SDL-3.2.20/VisualC-GDK/SDL.sln | 120 +++
src/contrib/SDL-3.2.20/VisualC-GDK/SDL/SDL.vcxproj | 918 +++++++++++++++++++++
.../SDL-3.2.20/VisualC-GDK/SDL/SDL.vcxproj.filters | 487 +++++++++++
.../VisualC-GDK/SDL_test/SDL_test.vcxproj | 214 +++++
src/contrib/SDL-3.2.20/VisualC-GDK/clean.sh | 7 +
.../SDL-3.2.20/VisualC-GDK/logos/Logo100x100.png | Bin 0 -> 10832 bytes
.../SDL-3.2.20/VisualC-GDK/logos/Logo150x150.png | Bin 0 -> 12709 bytes
.../SDL-3.2.20/VisualC-GDK/logos/Logo44x44.png | Bin 0 -> 7460 bytes
.../SDL-3.2.20/VisualC-GDK/logos/Logo480x480.png | Bin 0 -> 28677 bytes
.../VisualC-GDK/logos/SplashScreenImage.png | Bin 0 -> 6599 bytes
.../tests/testcontroller/PackageLayout.xml | 9 +
.../tests/testcontroller/testcontroller.vcxproj | 345 ++++++++
.../testcontroller/testcontroller.vcxproj.filters | 52 ++
.../testcontroller/wingdk/MicrosoftGame.config | 34 +
.../testcontroller/xboxone/MicrosoftGame.config | 29 +
.../testcontroller/xboxseries/MicrosoftGame.config | 29 +
.../VisualC-GDK/tests/testgdk/PackageLayout.xml | 10 +
.../VisualC-GDK/tests/testgdk/src/testgdk.cpp | 462 +++++++++++
.../VisualC-GDK/tests/testgdk/testgdk.vcxproj | 401 +++++++++
.../tests/testgdk/testgdk.vcxproj.filters | 53 ++
.../tests/testgdk/wingdk/MicrosoftGame.config | 34 +
.../tests/testgdk/xboxone/MicrosoftGame.config | 29 +
.../tests/testgdk/xboxseries/MicrosoftGame.config | 29 +
.../VisualC-GDK/tests/testsprite/PackageLayout.xml | 9 +
.../tests/testsprite/testsprite.vcxproj | 395 +++++++++
.../tests/testsprite/testsprite.vcxproj.filters | 52 ++
.../tests/testsprite/wingdk/MicrosoftGame.config | 34 +
.../tests/testsprite/xboxone/MicrosoftGame.config | 29 +
.../testsprite/xboxseries/MicrosoftGame.config | 29 +
29 files changed, 3810 insertions(+)
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/SDL.sln
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/SDL/SDL.vcxproj
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/SDL/SDL.vcxproj.filters
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/SDL_test/SDL_test.vcxproj
create mode 100755 src/contrib/SDL-3.2.20/VisualC-GDK/clean.sh
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/logos/Logo100x100.png
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/logos/Logo150x150.png
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/logos/Logo44x44.png
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/logos/Logo480x480.png
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/logos/SplashScreenImage.png
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/PackageLayout.xml
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/testcontroller.vcxproj
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/testcontroller.vcxproj.filters
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/wingdk/MicrosoftGame.config
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/xboxone/MicrosoftGame.config
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/xboxseries/MicrosoftGame.config
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/PackageLayout.xml
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/src/testgdk.cpp
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/testgdk.vcxproj
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/testgdk.vcxproj.filters
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/wingdk/MicrosoftGame.config
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/xboxone/MicrosoftGame.config
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/xboxseries/MicrosoftGame.config
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/PackageLayout.xml
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/testsprite.vcxproj
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/testsprite.vcxproj.filters
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/wingdk/MicrosoftGame.config
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/xboxone/MicrosoftGame.config
create mode 100644 src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/xboxseries/MicrosoftGame.config
(limited to 'src/contrib/SDL-3.2.20/VisualC-GDK')
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/SDL.sln b/src/contrib/SDL-3.2.20/VisualC-GDK/SDL.sln
new file mode 100644
index 0000000..14289c2
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/SDL.sln
@@ -0,0 +1,120 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.1.32414.318
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{D69D5741-611F-4E14-8541-1FEE94F50B5A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL3", "SDL\SDL.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsprite", "tests\testsprite\testsprite.vcxproj", "{40FB7794-D3C3-4CFE-BCF4-A80C96635682}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL3_test", "SDL_test\SDL_test.vcxproj", "{DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testcontroller", "tests\testcontroller\testcontroller.vcxproj", "{55812185-D13C-4022-9C81-32E0F4A08305}"
+ ProjectSection(ProjectDependencies) = postProject
+ {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} = {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgdk", "tests\testgdk\testgdk.vcxproj", "{1C9A3F71-35A5-4C56-B292-F4375B3C3649}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Gaming.Desktop.x64 = Debug|Gaming.Desktop.x64
+ Debug|Gaming.Xbox.Scarlett.x64 = Debug|Gaming.Xbox.Scarlett.x64
+ Debug|Gaming.Xbox.XboxOne.x64 = Debug|Gaming.Xbox.XboxOne.x64
+ Release|Gaming.Desktop.x64 = Release|Gaming.Desktop.x64
+ Release|Gaming.Xbox.Scarlett.x64 = Release|Gaming.Xbox.Scarlett.x64
+ Release|Gaming.Xbox.XboxOne.x64 = Release|Gaming.Xbox.XboxOne.x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64
+ {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64
+ {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Xbox.Scarlett.x64
+ {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Gaming.Xbox.Scarlett.x64.Build.0 = Debug|Gaming.Xbox.Scarlett.x64
+ {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Xbox.XboxOne.x64
+ {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Gaming.Xbox.XboxOne.x64.Build.0 = Debug|Gaming.Xbox.XboxOne.x64
+ {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64
+ {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.x64
+ {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Gaming.Xbox.Scarlett.x64.ActiveCfg = Release|Gaming.Xbox.Scarlett.x64
+ {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Gaming.Xbox.Scarlett.x64.Build.0 = Release|Gaming.Xbox.Scarlett.x64
+ {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Gaming.Xbox.XboxOne.x64.ActiveCfg = Release|Gaming.Xbox.XboxOne.x64
+ {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Gaming.Xbox.XboxOne.x64.Build.0 = Release|Gaming.Xbox.XboxOne.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Desktop.x64.Deploy.0 = Debug|Gaming.Desktop.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Xbox.Scarlett.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Xbox.Scarlett.x64.Build.0 = Debug|Gaming.Xbox.Scarlett.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Xbox.Scarlett.x64.Deploy.0 = Debug|Gaming.Xbox.Scarlett.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Xbox.XboxOne.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Xbox.XboxOne.x64.Build.0 = Debug|Gaming.Xbox.XboxOne.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Gaming.Xbox.XboxOne.x64.Deploy.0 = Debug|Gaming.Xbox.XboxOne.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Desktop.x64.Deploy.0 = Release|Gaming.Desktop.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Xbox.Scarlett.x64.ActiveCfg = Release|Gaming.Xbox.Scarlett.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Xbox.Scarlett.x64.Build.0 = Release|Gaming.Xbox.Scarlett.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Xbox.Scarlett.x64.Deploy.0 = Release|Gaming.Xbox.Scarlett.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Xbox.XboxOne.x64.ActiveCfg = Release|Gaming.Xbox.XboxOne.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Xbox.XboxOne.x64.Build.0 = Release|Gaming.Xbox.XboxOne.x64
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Gaming.Xbox.XboxOne.x64.Deploy.0 = Release|Gaming.Xbox.XboxOne.x64
+ {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64
+ {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64
+ {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Xbox.Scarlett.x64
+ {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Gaming.Xbox.Scarlett.x64.Build.0 = Debug|Gaming.Xbox.Scarlett.x64
+ {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Xbox.XboxOne.x64
+ {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Gaming.Xbox.XboxOne.x64.Build.0 = Debug|Gaming.Xbox.XboxOne.x64
+ {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64
+ {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.x64
+ {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Gaming.Xbox.Scarlett.x64.ActiveCfg = Release|Gaming.Xbox.Scarlett.x64
+ {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Gaming.Xbox.Scarlett.x64.Build.0 = Release|Gaming.Xbox.Scarlett.x64
+ {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Gaming.Xbox.XboxOne.x64.ActiveCfg = Release|Gaming.Xbox.XboxOne.x64
+ {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Gaming.Xbox.XboxOne.x64.Build.0 = Release|Gaming.Xbox.XboxOne.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Desktop.x64.Deploy.0 = Debug|Gaming.Desktop.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Xbox.Scarlett.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Xbox.Scarlett.x64.Build.0 = Debug|Gaming.Xbox.Scarlett.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Xbox.Scarlett.x64.Deploy.0 = Debug|Gaming.Xbox.Scarlett.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Xbox.XboxOne.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Xbox.XboxOne.x64.Build.0 = Debug|Gaming.Xbox.XboxOne.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Gaming.Xbox.XboxOne.x64.Deploy.0 = Debug|Gaming.Xbox.XboxOne.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Desktop.x64.Deploy.0 = Release|Gaming.Desktop.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Xbox.Scarlett.x64.ActiveCfg = Release|Gaming.Xbox.Scarlett.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Xbox.Scarlett.x64.Build.0 = Release|Gaming.Xbox.Scarlett.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Xbox.Scarlett.x64.Deploy.0 = Release|Gaming.Xbox.Scarlett.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Xbox.XboxOne.x64.ActiveCfg = Release|Gaming.Xbox.XboxOne.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Xbox.XboxOne.x64.Build.0 = Release|Gaming.Xbox.XboxOne.x64
+ {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Gaming.Xbox.XboxOne.x64.Deploy.0 = Release|Gaming.Xbox.XboxOne.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Desktop.x64.Deploy.0 = Debug|Gaming.Desktop.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Xbox.Scarlett.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Xbox.Scarlett.x64.Build.0 = Debug|Gaming.Xbox.Scarlett.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Xbox.Scarlett.x64.Deploy.0 = Debug|Gaming.Xbox.Scarlett.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Xbox.XboxOne.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Xbox.XboxOne.x64.Build.0 = Debug|Gaming.Xbox.XboxOne.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Debug|Gaming.Xbox.XboxOne.x64.Deploy.0 = Debug|Gaming.Xbox.XboxOne.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Desktop.x64.Deploy.0 = Release|Gaming.Desktop.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Xbox.Scarlett.x64.ActiveCfg = Release|Gaming.Xbox.Scarlett.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Xbox.Scarlett.x64.Build.0 = Release|Gaming.Xbox.Scarlett.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Xbox.Scarlett.x64.Deploy.0 = Release|Gaming.Xbox.Scarlett.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Xbox.XboxOne.x64.ActiveCfg = Release|Gaming.Xbox.XboxOne.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Xbox.XboxOne.x64.Build.0 = Release|Gaming.Xbox.XboxOne.x64
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}.Release|Gaming.Xbox.XboxOne.x64.Deploy.0 = Release|Gaming.Xbox.XboxOne.x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682} = {D69D5741-611F-4E14-8541-1FEE94F50B5A}
+ {55812185-D13C-4022-9C81-32E0F4A08305} = {D69D5741-611F-4E14-8541-1FEE94F50B5A}
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649} = {D69D5741-611F-4E14-8541-1FEE94F50B5A}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {C320C9F2-1A8F-41D7-B02B-6338F872BCAD}
+ EndGlobalSection
+EndGlobal
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/SDL/SDL.vcxproj b/src/contrib/SDL-3.2.20/VisualC-GDK/SDL/SDL.vcxproj
new file mode 100644
index 0000000..96ca804
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/SDL/SDL.vcxproj
@@ -0,0 +1,918 @@
+
+
+
+
+ Debug
+ Gaming.Desktop.x64
+
+
+ Debug
+ Gaming.Xbox.Scarlett.x64
+
+
+ Debug
+ Gaming.Xbox.XboxOne.x64
+
+
+ Release
+ Gaming.Desktop.x64
+
+
+ Release
+ Gaming.Xbox.Scarlett.x64
+
+
+ Release
+ Gaming.Xbox.XboxOne.x64
+
+
+
+ SDL3
+ {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}
+ SDL
+ 10.0
+
+
+
+ DynamicLibrary
+ $(DefaultPlatformToolset)
+
+
+ DynamicLibrary
+ $(DefaultPlatformToolset)
+
+
+ DynamicLibrary
+ $(DefaultPlatformToolset)
+
+
+ DynamicLibrary
+ $(DefaultPlatformToolset)
+
+
+ DynamicLibrary
+ $(DefaultPlatformToolset)
+
+
+ DynamicLibrary
+ $(DefaultPlatformToolset)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.40219.1
+ AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
+
+
+
+
+
+
+ AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
+
+
+
+
+
+
+
+
+ $(ProjectDir)../../src;$(IncludePath)
+
+
+ $(ProjectDir)../../src;$(IncludePath)
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Debug/SDL.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ Disabled
+ $(ProjectDir)\..\..\include;$(ProjectDir)\..\..\include\build_config;$(ProjectDir)\..\..\src;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ DLL_EXPORT;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ false
+ Level3
+ OldStyle
+ OnlyExplicitInline
+ true
+ NotUsing
+ SDL_internal.h
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+
+
+ setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;vcruntimed.lib;msvcrtd.lib;ucrtd.lib;msvcprtd.lib;%(AdditionalDependencies)
+ true
+ Windows
+ true
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Debug/SDL.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ Disabled
+ $(ProjectDir)\..\..\include;$(ProjectDir)\..\..\include\build_config;$(ProjectDir)\..\..\src;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ DLL_EXPORT;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ false
+ Level3
+ OldStyle
+ OnlyExplicitInline
+ true
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+
+
+ setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;d3d12_xs.lib;uuid.lib;vcruntimed.lib;msvcrtd.lib;ucrtd.lib;msvcprtd.lib;%(AdditionalDependencies)
+ true
+ Windows
+ true
+
+
+
+ call "$(ProjectDir)..\..\src\render\direct3d12\compile_shaders_xbox.bat" "$(ProjectDir)..\"
+ call "$(ProjectDir)..\..\src\gpu\d3d12\compile_shaders_xbox.bat" "$(ProjectDir)..\"
+
+
+
+ Building shader blobs (Xbox Series)
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Debug/SDL.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ Disabled
+ $(ProjectDir)\..\..\include;$(ProjectDir)\..\..\include\build_config;$(ProjectDir)\..\..\src;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ DLL_EXPORT;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ false
+ Level3
+ OldStyle
+ OnlyExplicitInline
+ true
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+
+
+ setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;d3d12_x.lib;uuid.lib;vcruntimed.lib;msvcrtd.lib;ucrtd.lib;msvcprtd.lib;%(AdditionalDependencies)
+ true
+ Windows
+ true
+
+
+
+ call $(ProjectDir)..\..\src\render\direct3d12\compile_shaders_xbox.bat $(ProjectDir)..\ one
+ call $(ProjectDir)..\..\src\gpu\d3d12\compile_shaders_xbox.bat $(ProjectDir)..\ one
+
+
+
+ Building shader blobs (Xbox One)
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Release/SDL.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ $(ProjectDir)\..\..\include;$(ProjectDir)\..\..\include\build_config;$(ProjectDir)\..\..\src;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ DLL_EXPORT;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ false
+ Level3
+ ProgramDatabase
+ OnlyExplicitInline
+ true
+ NotUsing
+ SDL_internal.h
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+
+
+ setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;vcruntime.lib;msvcrt.lib;ucrt.lib;msvcprt.lib;%(AdditionalDependencies)
+ true
+ Windows
+ true
+ true
+ true
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Release/SDL.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ $(ProjectDir)\..\..\include;$(ProjectDir)\..\..\include\build_config;$(ProjectDir)\..\..\src;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ DLL_EXPORT;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ false
+ Level3
+ ProgramDatabase
+ OnlyExplicitInline
+ true
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+
+
+ setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;d3d12_xs.lib;uuid.lib;vcruntime.lib;msvcrt.lib;ucrt.lib;msvcprt.lib;%(AdditionalDependencies)
+ true
+ Windows
+ true
+ true
+ true
+
+
+
+ call $(ProjectDir)..\..\src\render\direct3d12\compile_shaders_xbox.bat $(ProjectDir)..\
+ call $(ProjectDir)..\..\src\gpu\d3d12\compile_shaders_xbox.bat $(ProjectDir)..\
+
+
+
+ Building shader blobs (Xbox Series)
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Release/SDL.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ $(ProjectDir)\..\..\include;$(ProjectDir)\..\..\include\build_config;$(ProjectDir)\..\..\src;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ DLL_EXPORT;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ false
+ Level3
+ ProgramDatabase
+ OnlyExplicitInline
+ true
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+
+
+ setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;d3d12_x.lib;uuid.lib;vcruntime.lib;msvcrt.lib;ucrt.lib;msvcprt.lib;%(AdditionalDependencies)
+ true
+ Windows
+ true
+ true
+ true
+
+
+
+ call $(ProjectDir)..\..\src\render\direct3d12\compile_shaders_xbox.bat $(ProjectDir)..\ one
+ call $(ProjectDir)..\..\src\gpu\d3d12\compile_shaders_xbox.bat $(ProjectDir)..\ one
+
+
+
+ Building shader blobs (Xbox One)
+
+
+
+
+ %(AdditionalOptions) /utf-8
+ $(TreatWarningsAsError)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(IntDir)$(TargetName)_cpp.pch
+ $(IntDir)$(TargetName)_cpp.pch
+
+
+ Create
+ Create
+
+
+ Create
+ $(IntDir)$(TargetName)_cpp.pch
+ Create
+ $(IntDir)$(TargetName)_cpp.pch
+
+
+ true
+ true
+ true
+ true
+
+
+ $(IntDir)$(TargetName)_cpp.pch
+ $(IntDir)$(TargetName)_cpp.pch
+
+
+ $(IntDir)$(TargetName)_cpp.pch
+ $(IntDir)$(TargetName)_cpp.pch
+
+
+ $(IntDir)$(TargetName)_cpp.pch
+ $(IntDir)$(TargetName)_cpp.pch
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CompileAsCpp
+ CompileAsCpp
+ CompileAsCpp
+ CompileAsCpp
+ stdcpp17
+ stdcpp17
+ stdcpp17
+ stdcpp17
+
+
+
+ true
+ true
+
+
+ true
+ true
+ true
+ true
+
+
+ NotUsing
+ NotUsing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+
+ CompileAsCpp
+ CompileAsCpp
+ CompileAsCpp
+ CompileAsCpp
+ stdcpp17
+ stdcpp17
+ stdcpp17
+ stdcpp17
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CompileAsCpp
+ CompileAsCpp
+ CompileAsCpp
+ CompileAsCpp
+ stdcpp17
+ stdcpp17
+ stdcpp17
+ stdcpp17
+
+
+
+ stdcpp17
+ stdcpp17
+ stdcpp17
+ stdcpp17
+ CompileAsCpp
+ CompileAsCpp
+ CompileAsCpp
+ CompileAsCpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CompileAsCpp
+ CompileAsCpp
+ CompileAsCpp
+ CompileAsCpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ NotUsing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+
+
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+ $(IntDir)$(TargetName)_cpp.pch
+ $(IntDir)$(TargetName)_cpp.pch
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CompileAsCpp
+ CompileAsCpp
+ CompileAsCpp
+ CompileAsCpp
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/SDL/SDL.vcxproj.filters b/src/contrib/SDL-3.2.20/VisualC-GDK/SDL/SDL.vcxproj.filters
new file mode 100644
index 0000000..f760877
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/SDL/SDL.vcxproj.filters
@@ -0,0 +1,487 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/SDL_test/SDL_test.vcxproj b/src/contrib/SDL-3.2.20/VisualC-GDK/SDL_test/SDL_test.vcxproj
new file mode 100644
index 0000000..8d5106c
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/SDL_test/SDL_test.vcxproj
@@ -0,0 +1,214 @@
+
+
+
+
+ Debug
+ Gaming.Desktop.x64
+
+
+ Debug
+ Gaming.Xbox.Scarlett.x64
+
+
+ Debug
+ Gaming.Xbox.XboxOne.x64
+
+
+ Release
+ Gaming.Desktop.x64
+
+
+ Release
+ Gaming.Xbox.Scarlett.x64
+
+
+ Release
+ Gaming.Xbox.XboxOne.x64
+
+
+
+ SDL3_test
+ {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}
+ SDL_test
+ 10.0
+
+
+
+ StaticLibrary
+ $(DefaultPlatformToolset)
+
+
+ StaticLibrary
+ $(DefaultPlatformToolset)
+
+
+ StaticLibrary
+ $(DefaultPlatformToolset)
+
+
+ StaticLibrary
+ $(DefaultPlatformToolset)
+
+
+ StaticLibrary
+ $(DefaultPlatformToolset)
+
+
+ StaticLibrary
+ $(DefaultPlatformToolset)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.40219.1
+ AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
+
+
+
+
+
+
+ AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
+
+
+
+
+
+
+
+
+
+
+ %(AdditionalOptions) /utf-8
+ $(ProjectDir)/../../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ MultiThreadedDLL
+ false
+ Level3
+ OldStyle
+ true
+
+
+
+
+
+ %(AdditionalOptions) /utf-8
+ $(ProjectDir)/../../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ MultiThreadedDLL
+ false
+ Level3
+ OldStyle
+ true
+
+
+
+
+
+ %(AdditionalOptions) /utf-8
+ $(ProjectDir)/../../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ MultiThreadedDLL
+ false
+ Level3
+ OldStyle
+ true
+
+
+
+
+
+ %(AdditionalOptions) /utf-8
+ Disabled
+ $(ProjectDir)/../../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ false
+ Level3
+ OldStyle
+ true
+
+
+
+
+
+ %(AdditionalOptions) /utf-8
+ Disabled
+ $(ProjectDir)/../../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ false
+ Level3
+ OldStyle
+ true
+
+
+
+
+
+ %(AdditionalOptions) /utf-8
+ Disabled
+ $(ProjectDir)/../../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ false
+ Level3
+ OldStyle
+ true
+
+
+
+
+ %(AdditionalOptions) /utf-8
+ $(TreatWarningsAsError)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/clean.sh b/src/contrib/SDL-3.2.20/VisualC-GDK/clean.sh
new file mode 100755
index 0000000..235b79c
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/clean.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+find . -type f \( -name '*.user' -o -name '*.sdf' -o -name '*.ncb' -o -name '*.suo' \) -print -delete
+find . -type f \( -name '*.bmp' -o -name '*.wav' -o -name '*.dat' \) -print -delete
+find . -depth -type d \( -name Gaming.Desktop.x64 \) -exec rm -rv {} \;
+find . -depth -type d \( -name Gaming.Xbox.Scarlett.x64 \) -exec rm -rv {} \;
+find . -depth -type d \( -name Gaming.Xbox.XboxOne.x64 \) -exec rm -rv {} \;
+rm shaders/*.h
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/logos/Logo100x100.png b/src/contrib/SDL-3.2.20/VisualC-GDK/logos/Logo100x100.png
new file mode 100644
index 0000000..2d0333d
Binary files /dev/null and b/src/contrib/SDL-3.2.20/VisualC-GDK/logos/Logo100x100.png differ
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/logos/Logo150x150.png b/src/contrib/SDL-3.2.20/VisualC-GDK/logos/Logo150x150.png
new file mode 100644
index 0000000..046a8fb
Binary files /dev/null and b/src/contrib/SDL-3.2.20/VisualC-GDK/logos/Logo150x150.png differ
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/logos/Logo44x44.png b/src/contrib/SDL-3.2.20/VisualC-GDK/logos/Logo44x44.png
new file mode 100644
index 0000000..3ca25b5
Binary files /dev/null and b/src/contrib/SDL-3.2.20/VisualC-GDK/logos/Logo44x44.png differ
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/logos/Logo480x480.png b/src/contrib/SDL-3.2.20/VisualC-GDK/logos/Logo480x480.png
new file mode 100644
index 0000000..1123150
Binary files /dev/null and b/src/contrib/SDL-3.2.20/VisualC-GDK/logos/Logo480x480.png differ
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/logos/SplashScreenImage.png b/src/contrib/SDL-3.2.20/VisualC-GDK/logos/SplashScreenImage.png
new file mode 100644
index 0000000..def578f
Binary files /dev/null and b/src/contrib/SDL-3.2.20/VisualC-GDK/logos/SplashScreenImage.png differ
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/PackageLayout.xml b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/PackageLayout.xml
new file mode 100644
index 0000000..2fc9a76
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/PackageLayout.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/testcontroller.vcxproj b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/testcontroller.vcxproj
new file mode 100644
index 0000000..f600ce2
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/testcontroller.vcxproj
@@ -0,0 +1,345 @@
+
+
+
+
+ Debug
+ Gaming.Desktop.x64
+
+
+ Debug
+ Gaming.Xbox.Scarlett.x64
+
+
+ Debug
+ Gaming.Xbox.XboxOne.x64
+
+
+ Release
+ Gaming.Desktop.x64
+
+
+ Release
+ Gaming.Xbox.Scarlett.x64
+
+
+ Release
+ Gaming.Xbox.XboxOne.x64
+
+
+
+ {55812185-D13C-4022-9C81-32E0F4A08305}
+ testcontroller
+ 10.0
+
+
+
+ Application
+ $(DefaultPlatformToolset)
+
+
+ Application
+ $(DefaultPlatformToolset)
+ true
+
+
+ Application
+ $(DefaultPlatformToolset)
+ true
+
+
+ Application
+ $(DefaultPlatformToolset)
+
+
+ Application
+ $(DefaultPlatformToolset)
+
+
+ Application
+ $(DefaultPlatformToolset)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.40219.1
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
+
+
+
+
+
+
+ AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
+
+
+
+
+
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Release/testcontroller.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ Windows
+ xgameruntime.lib;../Microsoft.Xbox.Services.GDK.C.Thunks.lib;%(AdditionalDependencies)
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Release/testcontroller.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ Windows
+ xgameruntime.lib;%(AdditionalDependencies)
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Release/testcontroller.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ Windows
+ xgameruntime.lib;%(AdditionalDependencies)
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Debug/testcontroller.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ Disabled
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ OldStyle
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ true
+ Windows
+ xgameruntime.lib;../Microsoft.Xbox.Services.GDK.C.Thunks.lib;%(AdditionalDependencies)
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Debug/testcontroller.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ Disabled
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ OldStyle
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ true
+ Windows
+ xgameruntime.lib;%(AdditionalDependencies)
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Debug/testcontroller.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ Disabled
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ OldStyle
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ true
+ Windows
+ xgameruntime.lib;%(AdditionalDependencies)
+
+
+
+
+ %(AdditionalOptions) /utf-8
+ $(TreatWarningsAsError)
+
+
+
+
+ {81ce8daf-ebb2-4761-8e45-b71abcca8c68}
+ false
+ false
+ true
+
+
+ {da956fd3-e143-46f2-9fe5-c77bebc56b1a}
+ false
+ false
+ true
+
+
+
+
+
+
+
+
+
+ Document
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Document
+ true
+ true
+ true
+ true
+
+
+
+
+ Document
+ true
+ true
+ true
+ true
+
+
+
+
+ Document
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/testcontroller.vcxproj.filters b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/testcontroller.vcxproj.filters
new file mode 100644
index 0000000..90aec1b
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/testcontroller.vcxproj.filters
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+ logos
+
+
+ logos
+
+
+ logos
+
+
+ logos
+
+
+ wingdk
+
+
+ xboxseries
+
+
+ xboxone
+
+
+ logos
+
+
+
+ wingdk
+
+
+
+
+ {5e858cf0-6fba-498d-b33d-11c8ecbb79c7}
+
+
+ {5790a250-283e-4f51-8f28-6a977d3c7a6c}
+
+
+ {a4d235e4-4017-4193-af62-ecb2ac249be4}
+
+
+ {e704dcb9-c83c-4c94-a139-b0f3e3f428f2}
+
+
+
\ No newline at end of file
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/wingdk/MicrosoftGame.config b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/wingdk/MicrosoftGame.config
new file mode 100644
index 0000000..162624a
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/wingdk/MicrosoftGame.config
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PleaseChangeMe
+ FFFFFFFF
+
+
+
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/xboxone/MicrosoftGame.config b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/xboxone/MicrosoftGame.config
new file mode 100644
index 0000000..9d908c9
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/xboxone/MicrosoftGame.config
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+ PleaseChangeMe
+ FFFFFFFF
+
+
+
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/xboxseries/MicrosoftGame.config b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/xboxseries/MicrosoftGame.config
new file mode 100644
index 0000000..6d1829b
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testcontroller/xboxseries/MicrosoftGame.config
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+ PleaseChangeMe
+ FFFFFFFF
+
+
+
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/PackageLayout.xml b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/PackageLayout.xml
new file mode 100644
index 0000000..abee981
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/PackageLayout.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/src/testgdk.cpp b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/src/testgdk.cpp
new file mode 100644
index 0000000..51fc75b
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/src/testgdk.cpp
@@ -0,0 +1,462 @@
+/*
+ Copyright (C) 1997-2025 Sam Lantinga
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely.
+*/
+/* testgdk: Basic tests of using task queue/xbl (with simple drawing) in GDK.
+ * NOTE: As of June 2022 GDK, login will only work if MicrosoftGame.config is
+ * configured properly. See README-gdk.md.
+ */
+
+#include
+#include
+#include
+
+#include
+#include
+#include "../src/core/windows/SDL_windows.h"
+#include
+
+extern "C" {
+#include "../test/testutils.h"
+}
+
+#include
+
+#define NUM_SPRITES 100
+#define MAX_SPEED 1
+
+static SDLTest_CommonState *state;
+static int num_sprites;
+static SDL_Texture **sprites;
+static bool cycle_color;
+static bool cycle_alpha;
+static int cycle_direction = 1;
+static int current_alpha = 0;
+static int current_color = 0;
+static int sprite_w, sprite_h;
+static SDL_BlendMode blendMode = SDL_BLENDMODE_BLEND;
+
+int done;
+
+static struct
+{
+ SDL_AudioSpec spec;
+ Uint8 *sound; /* Pointer to wave data */
+ Uint32 soundlen; /* Length of wave data */
+ int soundpos; /* Current play position */
+} wave;
+
+static SDL_AudioStream *stream;
+
+/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */
+static void
+quit(int rc)
+{
+ SDL_free(sprites);
+ SDL_DestroyAudioStream(stream);
+ SDL_free(wave.sound);
+ SDLTest_CommonQuit(state);
+ /* If rc is 0, just let main return normally rather than calling exit.
+ * This allows testing of platforms where SDL_main is required and does meaningful cleanup.
+ */
+ if (rc != 0) {
+ exit(rc);
+ }
+}
+
+static int fillerup(void)
+{
+ const int minimum = (wave.soundlen / SDL_AUDIO_FRAMESIZE(wave.spec)) / 2;
+ if (SDL_GetAudioStreamQueued(stream) < minimum) {
+ SDL_PutAudioStreamData(stream, wave.sound, wave.soundlen);
+ }
+ return 0;
+}
+
+void
+UserLoggedIn(XUserHandle user)
+{
+ HRESULT hr;
+ char gamertag[128];
+ hr = XUserGetGamertag(user, XUserGamertagComponent::UniqueModern, sizeof(gamertag), gamertag, NULL);
+
+ if (SUCCEEDED(hr)) {
+ SDL_Log("User logged in: %s", gamertag);
+ } else {
+ SDL_Log("[GDK] UserLoggedIn -- XUserGetGamertag failed: 0x%08x.", hr);
+ }
+
+ XUserCloseHandle(user);
+}
+
+void
+AddUserUICallback(XAsyncBlock *asyncBlock)
+{
+ HRESULT hr;
+ XUserHandle user = NULL;
+
+ hr = XUserAddResult(asyncBlock, &user);
+ if (SUCCEEDED(hr)) {
+ uint64_t userId;
+
+ hr = XUserGetId(user, &userId);
+ if (FAILED(hr)) {
+ /* If unable to get the user ID, it means the account is banned, etc. */
+ SDL_Log("[GDK] AddUserSilentCallback -- XUserGetId failed: 0x%08x.", hr);
+ XUserCloseHandle(user);
+
+ /* Per the docs, likely should call XUserResolveIssueWithUiAsync here. */
+ } else {
+ UserLoggedIn(user);
+ }
+ } else {
+ SDL_Log("[GDK] AddUserUICallback -- XUserAddAsync failed: 0x%08x.", hr);
+ }
+
+ delete asyncBlock;
+}
+
+void
+AddUserUI()
+{
+ HRESULT hr;
+ XAsyncBlock *asyncBlock = new XAsyncBlock;
+
+ asyncBlock->context = NULL;
+ asyncBlock->queue = NULL; /* A null queue will use the global process task queue */
+ asyncBlock->callback = &AddUserUICallback;
+
+ hr = XUserAddAsync(XUserAddOptions::None, asyncBlock);
+
+ if (FAILED(hr)) {
+ delete asyncBlock;
+ SDL_Log("[GDK] AddUserSilent -- failed: 0x%08x", hr);
+ }
+}
+
+void
+AddUserSilentCallback(XAsyncBlock *asyncBlock)
+{
+ HRESULT hr;
+ XUserHandle user = NULL;
+
+ hr = XUserAddResult(asyncBlock, &user);
+ if (SUCCEEDED(hr)) {
+ uint64_t userId;
+
+ hr = XUserGetId(user, &userId);
+ if (FAILED(hr)) {
+ /* If unable to get the user ID, it means the account is banned, etc. */
+ SDL_Log("[GDK] AddUserSilentCallback -- XUserGetId failed: 0x%08x. Trying with UI.", hr);
+ XUserCloseHandle(user);
+ AddUserUI();
+ } else {
+ UserLoggedIn(user);
+ }
+ } else {
+ SDL_Log("[GDK] AddUserSilentCallback -- XUserAddAsync failed: 0x%08x. Trying with UI.", hr);
+ AddUserUI();
+ }
+
+ delete asyncBlock;
+}
+
+void
+AddUserSilent()
+{
+ HRESULT hr;
+ XAsyncBlock *asyncBlock = new XAsyncBlock;
+
+ asyncBlock->context = NULL;
+ asyncBlock->queue = NULL; /* A null queue will use the global process task queue */
+ asyncBlock->callback = &AddUserSilentCallback;
+
+ hr = XUserAddAsync(XUserAddOptions::AddDefaultUserSilently, asyncBlock);
+
+ if (FAILED(hr)) {
+ delete asyncBlock;
+ SDL_Log("[GDK] AddUserSilent -- failed: 0x%08x", hr);
+ }
+}
+
+int
+LoadSprite(const char *file)
+{
+ int i;
+
+ for (i = 0; i < state->num_windows; ++i) {
+ /* This does the SDL_LoadBMP step repeatedly, but that's OK for test code. */
+ sprites[i] = LoadTexture(state->renderers[i], file, true, &sprite_w, &sprite_h);
+ if (!sprites[i]) {
+ return -1;
+ }
+ if (!SDL_SetTextureBlendMode(sprites[i], blendMode)) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't set blend mode: %s", SDL_GetError());
+ SDL_DestroyTexture(sprites[i]);
+ return -1;
+ }
+ }
+
+ /* We're ready to roll. :) */
+ return 0;
+}
+
+void
+DrawSprites(SDL_Renderer * renderer, SDL_Texture * sprite)
+{
+ SDL_Rect viewport;
+ SDL_FRect temp;
+
+ /* Query the sizes */
+ SDL_GetRenderViewport(renderer, &viewport);
+
+ /* Cycle the color and alpha, if desired */
+ if (cycle_color) {
+ current_color += cycle_direction;
+ if (current_color < 0) {
+ current_color = 0;
+ cycle_direction = -cycle_direction;
+ }
+ if (current_color > 255) {
+ current_color = 255;
+ cycle_direction = -cycle_direction;
+ }
+ SDL_SetTextureColorMod(sprite, 255, (Uint8) current_color,
+ (Uint8) current_color);
+ }
+ if (cycle_alpha) {
+ current_alpha += cycle_direction;
+ if (current_alpha < 0) {
+ current_alpha = 0;
+ cycle_direction = -cycle_direction;
+ }
+ if (current_alpha > 255) {
+ current_alpha = 255;
+ cycle_direction = -cycle_direction;
+ }
+ SDL_SetTextureAlphaMod(sprite, (Uint8) current_alpha);
+ }
+
+ /* Draw a gray background */
+ SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF);
+ SDL_RenderClear(renderer);
+
+ /* Test points */
+ SDL_SetRenderDrawColor(renderer, 0xFF, 0x00, 0x00, 0xFF);
+ SDL_RenderPoint(renderer, 0.0f, 0.0f);
+ SDL_RenderPoint(renderer, (float)(viewport.w - 1), 0.0f);
+ SDL_RenderPoint(renderer, 0.0f, (float)(viewport.h - 1));
+ SDL_RenderPoint(renderer, (float)(viewport.w - 1), (float)(viewport.h - 1));
+
+ /* Test horizontal and vertical lines */
+ SDL_SetRenderDrawColor(renderer, 0x00, 0xFF, 0x00, 0xFF);
+ SDL_RenderLine(renderer, 1.0f, 0.0f, (float)(viewport.w - 2), 0.0f);
+ SDL_RenderLine(renderer, 1.0f, (float)(viewport.h - 1), (float)(viewport.w - 2), (float)(viewport.h - 1));
+ SDL_RenderLine(renderer, 0.0f, 1.0f, 0.0f, (float)(viewport.h - 2));
+ SDL_RenderLine(renderer, (float)(viewport.w - 1), 1, (float)(viewport.w - 1), (float)(viewport.h - 2));
+
+ /* Test fill and copy */
+ SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF);
+ temp.x = 1.0f;
+ temp.y = 1.0f;
+ temp.w = (float)sprite_w;
+ temp.h = (float)sprite_h;
+ SDL_RenderFillRect(renderer, &temp);
+ SDL_RenderTexture(renderer, sprite, NULL, &temp);
+ temp.x = (float)(viewport.w-sprite_w-1);
+ temp.y = 1.0f;
+ temp.w = (float)sprite_w;
+ temp.h = (float)sprite_h;
+ SDL_RenderFillRect(renderer, &temp);
+ SDL_RenderTexture(renderer, sprite, NULL, &temp);
+ temp.x = 1.0f;
+ temp.y = (float)(viewport.h-sprite_h-1);
+ temp.w = (float)sprite_w;
+ temp.h = (float)sprite_h;
+ SDL_RenderFillRect(renderer, &temp);
+ SDL_RenderTexture(renderer, sprite, NULL, &temp);
+ temp.x = (float)(viewport.w-sprite_w-1);
+ temp.y = (float)(viewport.h-sprite_h-1);
+ temp.w = (float)(sprite_w);
+ temp.h = (float)(sprite_h);
+ SDL_RenderFillRect(renderer, &temp);
+ SDL_RenderTexture(renderer, sprite, NULL, &temp);
+
+ /* Test diagonal lines */
+ SDL_SetRenderDrawColor(renderer, 0x00, 0xFF, 0x00, 0xFF);
+ SDL_RenderLine(renderer, (float)sprite_w, (float)sprite_h,
+ (float)(viewport.w-sprite_w-2), (float)(viewport.h-sprite_h-2));
+ SDL_RenderLine(renderer, (float)(viewport.w-sprite_w-2), (float)sprite_h,
+ (float)sprite_w, (float)(viewport.h-sprite_h-2));
+
+ /* Update the screen! */
+ SDL_RenderPresent(renderer);
+}
+
+void
+loop()
+{
+ int i;
+ SDL_Event event;
+
+ /* Check for events */
+ while (SDL_PollEvent(&event)) {
+ if (event.type == SDL_EVENT_KEY_DOWN && !event.key.repeat) {
+ SDL_Log("Initial SDL_EVENT_KEY_DOWN: %s", SDL_GetScancodeName(event.key.scancode));
+ }
+#if defined(SDL_PLATFORM_XBOXONE) || defined(SDL_PLATFORM_XBOXSERIES)
+ /* On Xbox, ignore the keydown event because the features aren't supported */
+ if (event.type != SDL_EVENT_KEY_DOWN) {
+ SDLTest_CommonEvent(state, &event, &done);
+ }
+#else
+ SDLTest_CommonEvent(state, &event, &done);
+#endif
+ }
+ for (i = 0; i < state->num_windows; ++i) {
+ if (state->windows[i] == NULL) {
+ continue;
+ }
+ DrawSprites(state->renderers[i], sprites[i]);
+ }
+ fillerup();
+}
+
+int
+main(int argc, char *argv[])
+{
+ int i;
+ const char *icon = "icon.bmp";
+ char *soundname = NULL;
+
+ /* Initialize parameters */
+ num_sprites = NUM_SPRITES;
+
+ /* Initialize test framework */
+ state = SDLTest_CommonCreateState(argv, SDL_INIT_VIDEO | SDL_INIT_AUDIO);
+ if (!state) {
+ return 1;
+ }
+
+ for (i = 1; i < argc;) {
+ int consumed;
+
+ consumed = SDLTest_CommonArg(state, i);
+ if (consumed == 0) {
+ consumed = -1;
+ if (SDL_strcasecmp(argv[i], "--blend") == 0) {
+ if (argv[i + 1]) {
+ if (SDL_strcasecmp(argv[i + 1], "none") == 0) {
+ blendMode = SDL_BLENDMODE_NONE;
+ consumed = 2;
+ } else if (SDL_strcasecmp(argv[i + 1], "blend") == 0) {
+ blendMode = SDL_BLENDMODE_BLEND;
+ consumed = 2;
+ } else if (SDL_strcasecmp(argv[i + 1], "add") == 0) {
+ blendMode = SDL_BLENDMODE_ADD;
+ consumed = 2;
+ } else if (SDL_strcasecmp(argv[i + 1], "mod") == 0) {
+ blendMode = SDL_BLENDMODE_MOD;
+ consumed = 2;
+ } else if (SDL_strcasecmp(argv[i + 1], "sub") == 0) {
+ blendMode = SDL_ComposeCustomBlendMode(SDL_BLENDFACTOR_SRC_ALPHA, SDL_BLENDFACTOR_ONE, SDL_BLENDOPERATION_SUBTRACT, SDL_BLENDFACTOR_ZERO, SDL_BLENDFACTOR_ONE, SDL_BLENDOPERATION_SUBTRACT);
+ consumed = 2;
+ }
+ }
+ } else if (SDL_strcasecmp(argv[i], "--cyclecolor") == 0) {
+ cycle_color = true;
+ consumed = 1;
+ } else if (SDL_strcasecmp(argv[i], "--cyclealpha") == 0) {
+ cycle_alpha = true;
+ consumed = 1;
+ } else if (SDL_isdigit(*argv[i])) {
+ num_sprites = SDL_atoi(argv[i]);
+ consumed = 1;
+ } else if (argv[i][0] != '-') {
+ icon = argv[i];
+ consumed = 1;
+ }
+ }
+ if (consumed < 0) {
+ static const char *options[] = {
+ "[--blend none|blend|add|mod]",
+ "[--cyclecolor]",
+ "[--cyclealpha]",
+ "[num_sprites]",
+ "[icon.bmp]",
+ NULL };
+ SDLTest_CommonLogUsage(state, argv[0], options);
+ quit(1);
+ }
+ i += consumed;
+ }
+ if (!SDLTest_CommonInit(state)) {
+ quit(2);
+ }
+
+ /* Create the windows, initialize the renderers, and load the textures */
+ sprites =
+ (SDL_Texture **) SDL_malloc(state->num_windows * sizeof(*sprites));
+ if (!sprites) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Out of memory!");
+ quit(2);
+ }
+ for (i = 0; i < state->num_windows; ++i) {
+ SDL_Renderer *renderer = state->renderers[i];
+ SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF);
+ SDL_RenderClear(renderer);
+ }
+ if (LoadSprite(icon) < 0) {
+ quit(2);
+ }
+
+ soundname = GetResourceFilename(argc > 1 ? argv[1] : NULL, "sample.wav");
+
+ if (!soundname) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s", SDL_GetError());
+ quit(1);
+ }
+
+ /* Load the wave file into memory */
+ if (!SDL_LoadWAV(soundname, &wave.spec, &wave.sound, &wave.soundlen)) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't load %s: %s", soundname, SDL_GetError());
+ quit(1);
+ }
+
+ /* Show the list of available drivers */
+ SDL_Log("Available audio drivers:");
+ for (i = 0; i < SDL_GetNumAudioDrivers(); ++i) {
+ SDL_Log("%i: %s", i, SDL_GetAudioDriver(i));
+ }
+
+ SDL_Log("Using audio driver: %s", SDL_GetCurrentAudioDriver());
+
+ stream = SDL_OpenAudioDeviceStream(SDL_AUDIO_DEVICE_DEFAULT_PLAYBACK, &wave.spec, NULL, NULL);
+ if (!stream) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't create audio stream: %s", SDL_GetError());
+ return -1;
+ }
+ SDL_ResumeAudioDevice(SDL_GetAudioStreamDevice(stream));
+
+ /* Main render loop */
+ done = 0;
+
+ /* Try to add the default user silently */
+ AddUserSilent();
+
+ while (!done) {
+ loop();
+ }
+
+ quit(0);
+
+ SDL_free(soundname);
+ return 0;
+}
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/testgdk.vcxproj b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/testgdk.vcxproj
new file mode 100644
index 0000000..c16fade
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/testgdk.vcxproj
@@ -0,0 +1,401 @@
+
+
+
+
+ Debug
+ Gaming.Desktop.x64
+
+
+ Debug
+ Gaming.Xbox.Scarlett.x64
+
+
+ Debug
+ Gaming.Xbox.XboxOne.x64
+
+
+ Release
+ Gaming.Desktop.x64
+
+
+ Release
+ Gaming.Xbox.Scarlett.x64
+
+
+ Release
+ Gaming.Xbox.XboxOne.x64
+
+
+
+ {1C9A3F71-35A5-4C56-B292-F4375B3C3649}
+ testsprite
+ 10.0
+
+
+
+ Application
+ $(DefaultPlatformToolset)
+
+
+ Application
+ $(DefaultPlatformToolset)
+ true
+
+
+ Application
+ $(DefaultPlatformToolset)
+ true
+
+
+ Application
+ $(DefaultPlatformToolset)
+
+
+ Application
+ $(DefaultPlatformToolset)
+
+
+ Application
+ $(DefaultPlatformToolset)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.40219.1
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
+
+
+
+
+
+
+ AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
+
+
+
+
+
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Release/testsprite.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ Windows
+ xgameruntime.lib;../Microsoft.Xbox.Services.GDK.C.Thunks.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Release/testsprite.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ Windows
+ xgameruntime.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Release/testsprite.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ Windows
+ xgameruntime.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Debug/testsprite.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ Disabled
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ OldStyle
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ true
+ Windows
+ xgameruntime.lib;../Microsoft.Xbox.Services.GDK.C.Thunks.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Debug/testsprite.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ Disabled
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ OldStyle
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ true
+ Windows
+ xgameruntime.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Debug/testsprite.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ Disabled
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ OldStyle
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ true
+ Windows
+ xgameruntime.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+ %(AdditionalOptions) /utf-8
+ $(TreatWarningsAsError)
+
+
+
+
+ {81ce8daf-ebb2-4761-8e45-b71abcca8c68}
+ false
+ false
+ true
+
+
+ {da956fd3-e143-46f2-9fe5-c77bebc56b1a}
+ false
+ false
+ true
+
+
+
+
+ Copying %(Filename)%(Extension)
+ Copying %(Filename)%(Extension)
+ Copying %(Filename)%(Extension)
+ copy "%(FullPath)" "$(ProjectDir)\"
+copy "%(FullPath)" "$(OutDir)\"
+ copy "%(FullPath)" "$(ProjectDir)\"
+copy "%(FullPath)" "$(OutDir)\"
+ copy "%(FullPath)" "$(ProjectDir)\"
+copy "%(FullPath)" "$(OutDir)\"
+ $(ProjectDir)\%(Filename)%(Extension);%(Outputs)
+ $(ProjectDir)\%(Filename)%(Extension);%(Outputs)
+ $(ProjectDir)\%(Filename)%(Extension);%(Outputs)
+ Copying %(Filename)%(Extension)
+ Copying %(Filename)%(Extension)
+ Copying %(Filename)%(Extension)
+ copy "%(FullPath)" "$(ProjectDir)\"
+copy "%(FullPath)" "$(OutDir)\"
+ copy "%(FullPath)" "$(ProjectDir)\"
+copy "%(FullPath)" "$(OutDir)\"
+ copy "%(FullPath)" "$(ProjectDir)\"
+copy "%(FullPath)" "$(OutDir)\"
+ $(ProjectDir)\%(Filename)%(Extension);%(Outputs)
+ $(ProjectDir)\%(Filename)%(Extension);%(Outputs)
+ $(ProjectDir)\%(Filename)%(Extension);%(Outputs)
+
+
+
+
+
+
+
+
+ Document
+ true
+ true
+ true
+ true
+
+
+
+
+ Document
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Document
+ true
+ true
+ true
+ true
+
+
+
+
+ Document
+
+
+
+
+ Document
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/testgdk.vcxproj.filters b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/testgdk.vcxproj.filters
new file mode 100644
index 0000000..1cbae86
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/testgdk.vcxproj.filters
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+ logos
+
+
+ logos
+
+
+ logos
+
+
+ logos
+
+
+ wingdk
+
+
+ xboxseries
+
+
+
+ xboxone
+
+
+ logos
+
+
+
+ wingdk
+
+
+
+
+ {c3c871f2-c7b7-4025-8ba4-037dde717fe1}
+
+
+ {1678a80d-0ee8-4f48-bf89-9462d82dd98a}
+
+
+ {1b47b96b-507e-40ec-9c25-99b1a4d5b575}
+
+
+ {ac7aa2d5-f0f7-46eb-a548-5b6316f3b63b}
+
+
+
\ No newline at end of file
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/wingdk/MicrosoftGame.config b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/wingdk/MicrosoftGame.config
new file mode 100644
index 0000000..afd57d6
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/wingdk/MicrosoftGame.config
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PleaseChangeMe
+ FFFFFFFF
+
+
+
\ No newline at end of file
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/xboxone/MicrosoftGame.config b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/xboxone/MicrosoftGame.config
new file mode 100644
index 0000000..a593bd1
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/xboxone/MicrosoftGame.config
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+ PleaseChangeMe
+ FFFFFFFF
+
+
+
\ No newline at end of file
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/xboxseries/MicrosoftGame.config b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/xboxseries/MicrosoftGame.config
new file mode 100644
index 0000000..1ab7c17
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testgdk/xboxseries/MicrosoftGame.config
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+ PleaseChangeMe
+ FFFFFFFF
+
+
+
\ No newline at end of file
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/PackageLayout.xml b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/PackageLayout.xml
new file mode 100644
index 0000000..60a8378
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/PackageLayout.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/testsprite.vcxproj b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/testsprite.vcxproj
new file mode 100644
index 0000000..15ea690
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/testsprite.vcxproj
@@ -0,0 +1,395 @@
+
+
+
+
+ Debug
+ Gaming.Desktop.x64
+
+
+ Debug
+ Gaming.Xbox.Scarlett.x64
+
+
+ Debug
+ Gaming.Xbox.XboxOne.x64
+
+
+ Release
+ Gaming.Desktop.x64
+
+
+ Release
+ Gaming.Xbox.Scarlett.x64
+
+
+ Release
+ Gaming.Xbox.XboxOne.x64
+
+
+
+ {40FB7794-D3C3-4CFE-BCF4-A80C96635682}
+ testsprite
+ 10.0
+
+
+
+ Application
+ $(DefaultPlatformToolset)
+
+
+ Application
+ $(DefaultPlatformToolset)
+ true
+
+
+ Application
+ $(DefaultPlatformToolset)
+ true
+
+
+ Application
+ $(DefaultPlatformToolset)
+
+
+ Application
+ $(DefaultPlatformToolset)
+
+
+ Application
+ $(DefaultPlatformToolset)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.40219.1
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
+
+
+
+
+
+
+ AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
+
+
+
+
+
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Release/testsprite.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ Windows
+ xgameruntime.lib;../Microsoft.Xbox.Services.GDK.C.Thunks.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Release/testsprite.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ Windows
+ xgameruntime.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Release/testsprite.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ Windows
+ xgameruntime.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Debug/testsprite.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ Disabled
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ OldStyle
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ true
+ Windows
+ xgameruntime.lib;../Microsoft.Xbox.Services.GDK.C.Thunks.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Debug/testsprite.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ Disabled
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ OldStyle
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ true
+ Windows
+ xgameruntime.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ .\Debug/testsprite.tlb
+
+
+ %(AdditionalOptions) /utf-8
+ Disabled
+ $(SolutionDir)/../include;%(AdditionalIncludeDirectories)
+ %(AdditionalUsingDirectories)
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ OldStyle
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ true
+ Windows
+ xgameruntime.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+ %(AdditionalOptions) /utf-8
+ $(TreatWarningsAsError)
+
+
+
+
+ {81ce8daf-ebb2-4761-8e45-b71abcca8c68}
+ false
+ false
+ true
+
+
+ {da956fd3-e143-46f2-9fe5-c77bebc56b1a}
+ false
+ false
+ true
+
+
+
+
+ Copying %(Filename)%(Extension)
+ Copying %(Filename)%(Extension)
+ Copying %(Filename)%(Extension)
+ copy "%(FullPath)" "$(ProjectDir)\"
+copy "%(FullPath)" "$(OutDir)\"
+ copy "%(FullPath)" "$(ProjectDir)\"
+copy "%(FullPath)" "$(OutDir)\"
+ copy "%(FullPath)" "$(ProjectDir)\"
+copy "%(FullPath)" "$(OutDir)\"
+ $(ProjectDir)\%(Filename)%(Extension);%(Outputs)
+ $(ProjectDir)\%(Filename)%(Extension);%(Outputs)
+ $(ProjectDir)\%(Filename)%(Extension);%(Outputs)
+ Copying %(Filename)%(Extension)
+ Copying %(Filename)%(Extension)
+ Copying %(Filename)%(Extension)
+ copy "%(FullPath)" "$(ProjectDir)\"
+copy "%(FullPath)" "$(OutDir)\"
+ copy "%(FullPath)" "$(ProjectDir)\"
+copy "%(FullPath)" "$(OutDir)\"
+ copy "%(FullPath)" "$(ProjectDir)\"
+copy "%(FullPath)" "$(OutDir)\"
+ $(ProjectDir)\%(Filename)%(Extension);%(Outputs)
+ $(ProjectDir)\%(Filename)%(Extension);%(Outputs)
+ $(ProjectDir)\%(Filename)%(Extension);%(Outputs)
+
+
+
+
+
+
+
+
+ Document
+ true
+ true
+ true
+ true
+
+
+
+
+ Document
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Document
+ true
+ true
+ true
+ true
+
+
+
+
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/testsprite.vcxproj.filters b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/testsprite.vcxproj.filters
new file mode 100644
index 0000000..ac1cda6
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/testsprite.vcxproj.filters
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+ logos
+
+
+ logos
+
+
+ logos
+
+
+ logos
+
+
+ xboxseries
+
+
+ xboxone
+
+
+ wingdk
+
+
+ logos
+
+
+
+ wingdk
+
+
+
+
+ {c3c871f2-c7b7-4025-8ba4-037dde717fe1}
+
+
+ {c862dfc3-7803-4359-a31e-9dcda37e641a}
+
+
+ {1671e83d-25b3-4eb5-bed0-5c52c80f4e49}
+
+
+ {9bf62acf-6661-43f9-bde3-0de9e1db4290}
+
+
+
\ No newline at end of file
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/wingdk/MicrosoftGame.config b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/wingdk/MicrosoftGame.config
new file mode 100644
index 0000000..bbb839c
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/wingdk/MicrosoftGame.config
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PleaseChangeMe
+ FFFFFFFF
+
+
+
\ No newline at end of file
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/xboxone/MicrosoftGame.config b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/xboxone/MicrosoftGame.config
new file mode 100644
index 0000000..14fbf7d
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/xboxone/MicrosoftGame.config
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+ PleaseChangeMe
+ FFFFFFFF
+
+
+
\ No newline at end of file
diff --git a/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/xboxseries/MicrosoftGame.config b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/xboxseries/MicrosoftGame.config
new file mode 100644
index 0000000..402b89e
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/VisualC-GDK/tests/testsprite/xboxseries/MicrosoftGame.config
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+ PleaseChangeMe
+ FFFFFFFF
+
+
+
\ No newline at end of file
--
cgit v1.2.3