From 3b191580c392b7a2f7ee7c8a586020817dc7dc05 Mon Sep 17 00:00:00 2001
From: chalonverse <[EMAIL REDACTED]>
Date: Mon, 27 Jun 2022 17:19:39 +0000
Subject: [PATCH] Windows GDK Support (#5830)
* Added GDK
* Simplfied checks in SDL_config_wingdk.h
* Added testgdk sample
* Added GDK readme
* Fixed error in merge of SDL_windows.h
* Additional GDK fixes
* OpenWatcom should not export _SDL_GDKGetTaskQueue
* Formatting fixes
* Moved initialization code into SDL_GDKRunApp
---
VisualC-GDK/SDL.sln | 67 +
VisualC-GDK/SDL/SDL.vcxproj | 521 +++++++
VisualC-GDK/SDL/SDL.vcxproj.filters | 1358 +++++++++++++++++
VisualC-GDK/SDLmain/SDLmain.vcxproj | 87 ++
VisualC-GDK/SDLtest/SDLtest.vcxproj | 102 ++
VisualC-GDK/clean.sh | 4 +
VisualC-GDK/logos/Logo100x100.png | Bin 0 -> 10832 bytes
VisualC-GDK/logos/Logo150x150.png | Bin 0 -> 12709 bytes
VisualC-GDK/logos/Logo44x44.png | Bin 0 -> 7460 bytes
VisualC-GDK/logos/Logo480x480.png | Bin 0 -> 28677 bytes
.../testgamecontroller/MicrosoftGame.config | 34 +
.../testgamecontroller/PackageLayout.xml | 9 +
.../testgamecontroller.vcxproj | 183 +++
.../testgamecontroller.vcxproj.filters | 33 +
.../tests/testgdk/MicrosoftGame.config | 34 +
VisualC-GDK/tests/testgdk/PackageLayout.xml | 9 +
VisualC-GDK/tests/testgdk/src/testgdk.cpp | 398 +++++
VisualC-GDK/tests/testgdk/testgdk.vcxproj | 167 ++
.../tests/testgdk/testgdk.vcxproj.filters | 30 +
.../tests/testsprite2/MicrosoftGame.config | 34 +
.../tests/testsprite2/PackageLayout.xml | 9 +
.../tests/testsprite2/testsprite2.vcxproj | 167 ++
.../testsprite2/testsprite2.vcxproj.filters | 30 +
docs/README-gdk.md | 154 ++
docs/README.md | 1 +
include/SDL_config.h | 2 +
include/SDL_config_wingdk.h | 285 ++++
include/SDL_cpuinfo.h | 2 +-
include/SDL_main.h | 26 +-
include/SDL_platform.h | 10 +-
include/SDL_rwops.h | 2 +-
include/SDL_stdinc.h | 8 +-
include/SDL_system.h | 36 +-
include/SDL_thread.h | 4 +-
include/begin_code.h | 4 +-
src/SDL.c | 8 +-
src/SDL_assert.c | 6 +-
src/SDL_log.c | 14 +-
src/atomic/SDL_spinlock.c | 2 +-
src/audio/wasapi/SDL_wasapi.c | 2 +-
src/core/gdk/SDL_gdk.cpp | 177 +++
src/core/gdk/SDL_gdk.h | 24 +
src/core/windows/SDL_windows.c | 4 +-
src/core/windows/SDL_windows.h | 10 +
src/cpuinfo/SDL_cpuinfo.c | 12 +-
src/dynapi/SDL2.exports | 2 +
src/dynapi/SDL_dynapi_overrides.h | 2 +
src/dynapi/SDL_dynapi_procs.h | 22 +-
src/events/SDL_events.c | 2 +-
src/events/SDL_mouse.c | 8 +-
src/events/SDL_sysevents.h | 2 +-
src/file/SDL_rwops.c | 8 +-
src/hidapi/SDL_hidapi.c | 20 +-
src/joystick/SDL_gamecontroller.c | 2 +-
src/joystick/SDL_joystick.c | 4 +-
src/joystick/hidapi/SDL_hidapi_xboxone.c | 6 +-
src/joystick/hidapi/SDL_hidapijoystick.c | 2 +-
src/main/gdk/SDL_gdk_main.c | 41 +
src/render/direct3d/SDL_render_d3d.c | 4 +-
src/render/direct3d11/SDL_render_d3d11.c | 12 +-
src/render/direct3d12/SDL_render_d3d12.c | 4 +-
src/render/opengl/SDL_render_gl.c | 2 +-
src/render/software/SDL_rotate.c | 2 +-
src/stdlib/SDL_getenv.c | 8 +-
src/stdlib/SDL_iconv.c | 2 +-
src/video/SDL_video.c | 4 +-
src/video/windows/SDL_windowsevents.c | 8 +
test/testsprite2.c | 7 +-
68 files changed, 4150 insertions(+), 93 deletions(-)
create mode 100644 VisualC-GDK/SDL.sln
create mode 100644 VisualC-GDK/SDL/SDL.vcxproj
create mode 100644 VisualC-GDK/SDL/SDL.vcxproj.filters
create mode 100644 VisualC-GDK/SDLmain/SDLmain.vcxproj
create mode 100644 VisualC-GDK/SDLtest/SDLtest.vcxproj
create mode 100644 VisualC-GDK/clean.sh
create mode 100644 VisualC-GDK/logos/Logo100x100.png
create mode 100644 VisualC-GDK/logos/Logo150x150.png
create mode 100644 VisualC-GDK/logos/Logo44x44.png
create mode 100644 VisualC-GDK/logos/Logo480x480.png
create mode 100644 VisualC-GDK/tests/testgamecontroller/MicrosoftGame.config
create mode 100644 VisualC-GDK/tests/testgamecontroller/PackageLayout.xml
create mode 100644 VisualC-GDK/tests/testgamecontroller/testgamecontroller.vcxproj
create mode 100644 VisualC-GDK/tests/testgamecontroller/testgamecontroller.vcxproj.filters
create mode 100644 VisualC-GDK/tests/testgdk/MicrosoftGame.config
create mode 100644 VisualC-GDK/tests/testgdk/PackageLayout.xml
create mode 100644 VisualC-GDK/tests/testgdk/src/testgdk.cpp
create mode 100644 VisualC-GDK/tests/testgdk/testgdk.vcxproj
create mode 100644 VisualC-GDK/tests/testgdk/testgdk.vcxproj.filters
create mode 100644 VisualC-GDK/tests/testsprite2/MicrosoftGame.config
create mode 100644 VisualC-GDK/tests/testsprite2/PackageLayout.xml
create mode 100644 VisualC-GDK/tests/testsprite2/testsprite2.vcxproj
create mode 100644 VisualC-GDK/tests/testsprite2/testsprite2.vcxproj.filters
create mode 100644 docs/README-gdk.md
create mode 100644 include/SDL_config_wingdk.h
create mode 100644 src/core/gdk/SDL_gdk.cpp
create mode 100644 src/core/gdk/SDL_gdk.h
create mode 100644 src/main/gdk/SDL_gdk_main.c
diff --git a/VisualC-GDK/SDL.sln b/VisualC-GDK/SDL.sln
new file mode 100644
index 00000000000..a52c78dc921
--- /dev/null
+++ b/VisualC-GDK/SDL.sln
@@ -0,0 +1,67 @@
+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}") = "SDL2", "SDL\SDL.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2main", "SDLmain\SDLmain.vcxproj", "{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsprite2", "tests\testsprite2\testsprite2.vcxproj", "{40FB7794-D3C3-4CFE-BCF4-A80C96635682}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2test", "SDLtest\SDLtest.vcxproj", "{DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgamecontroller", "tests\testgamecontroller\testgamecontroller.vcxproj", "{55812185-D13C-4022-9C81-32E0F4A08305}"
+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
+ Release|Gaming.Desktop.x64 = Release|Gaming.Desktop.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}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64
+ {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.x64
+ {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64
+ {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64
+ {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64
+ {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.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}.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
+ {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}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64
+ {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.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}.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
+ {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}.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
+ 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/VisualC-GDK/SDL/SDL.vcxproj b/VisualC-GDK/SDL/SDL.vcxproj
new file mode 100644
index 00000000000..ffcb9c01a2c
--- /dev/null
+++ b/VisualC-GDK/SDL/SDL.vcxproj
@@ -0,0 +1,521 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Gaming.Desktop.x64">
+ <Configuration>Debug</Configuration>
+ <Platform>Gaming.Desktop.x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Gaming.Desktop.x64">
+ <Configuration>Release</Configuration>
+ <Platform>Gaming.Desktop.x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>SDL2</ProjectName>
+ <ProjectGuid>{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}</ProjectGuid>
+ <RootNamespace>SDL</RootNamespace>
+ <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Gaming.Desktop.x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset Condition="'$(VisualStudioVersion)' != '10.0'">$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Desktop.x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset Condition="'$(VisualStudioVersion)' != '10.0'">$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Gaming.Desktop.x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Desktop.x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Desktop.x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Desktop.x64'">$(Platform)\$(Configuration)\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Gaming.Desktop.x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Gaming.Desktop.x64'">$(Platform)\$(Configuration)\</IntDir>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Desktop.x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Desktop.x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Desktop.x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Gaming.Desktop.x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Gaming.Desktop.x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Gaming.Desktop.x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Desktop.x64'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TypeLibraryName>.\Debug/SDL.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>$(ProjectDir)/../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalUsingDirectories>%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
+ <PreprocessorDefinitions>DLL_EXPORT;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitDefaultLibName>true</OmitDefaultLibName>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;vcruntimed.lib;msvcrtd.lib;ucrtd.lib;msvcprtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Gaming.Desktop.x64'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TypeLibraryName>.\Release/SDL.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <AdditionalIncludeDirectories>$(ProjectDir)/../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalUsingDirectories>%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
+ <PreprocessorDefinitions>DLL_EXPORT;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitDefaultLibName>true</OmitDefaultLibName>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;vcruntime.lib;msvcrt.lib;ucrt.lib;msvcprt.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\include\begin_code.h" />
+ <ClInclude Include="..\..\include\close_code.h" />
+ <ClInclude Include="..\..\include\SDL.h" />
+ <ClInclude Include="..\..\include\SDL_assert.h" />
+ <ClInclude Include="..\..\include\SDL_atomic.h" />
+ <ClInclude Include="..\..\include\SDL_audio.h" />
+ <ClInclude Include="..\..\include\SDL_bits.h" />
+ <ClInclude Include="..\..\include\SDL_blendmode.h" />
+ <ClInclude Include="..\..\include\SDL_clipboard.h" />
+ <ClInclude Include="..\..\include\SDL_config.h" />
+ <ClInclude Include="..\..\include\SDL_config_wingdk.h" />
+ <ClInclude Include="..\..\include\SDL_copying.h" />
+ <ClInclude Include="..\..\include\SDL_cpuinfo.h" />
+ <ClInclude Include="..\..\include\SDL_egl.h" />
+ <ClInclude Include="..\..\include\SDL_endian.h" />
+ <ClInclude Include="..\..\include\SDL_error.h" />
+ <ClInclude Include="..\..\include\SDL_events.h" />
+ <ClInclude Include="..\..\include\SDL_filesystem.h" />
+ <ClInclude Include="..\..\include\SDL_gamecontroller.h" />
+ <ClInclude Include="..\..\include\SDL_gesture.h" />
+ <ClInclude Include="..\..\include\SDL_guid.h" />
+ <ClInclude Include="..\..\include\SDL_haptic.h" />
+ <ClInclude Include="..\..\include\SDL_hints.h" />
+ <ClInclude Include="..\..\include\SDL_hidapi.h" />
+ <ClInclude Include="..\..\include\SDL_joystick.h" />
+ <ClInclude Include="..\..\include\SDL_keyboard.h" />
+ <ClInclude Include="..\..\include\SDL_keycode.h" />
+ <ClInclude Include="..\..\include\SDL_loadso.h" />
+ <ClInclude Include="..\..\include\SDL_locale.h" />
+ <ClInclude Include="..\..\include\SDL_log.h" />
+ <ClInclude Include="..\..\include\SDL_main.h" />
+ <ClInclude Include="..\..\include\SDL_messagebox.h" />
+ <ClInclude Include="..\..\include\SDL_metal.h" />
+ <ClInclude Include="..\..\include\SDL_misc.h" />
+ <ClInclude Include="..\..\include\SDL_mouse.h" />
+ <ClInclude Include="..\..\include\SDL_mutex.h" />
+ <ClInclude Include="..\..\include\SDL_name.h" />
+ <ClInclude Include="..\..\include\SDL_opengl.h" />
+ <ClInclude Include="..\..\include\SDL_opengl_glext.h" />
+ <ClInclude Include="..\..\include\SDL_opengles.h" />
+ <ClInclude Include="..\..\include\SDL_opengles2.h" />
+ <ClInclude Include="..\..\include\SDL_opengles2_gl2.h" />
+ <ClInclude Include="..\..\include\SDL_opengles2_gl2ext.h" />
+ <ClInclude Include="..\..\include\SDL_opengles2_gl2platform.h" />
+ <ClInclude Include="..\..\include\SDL_opengles2_khrplatform.h" />
+ <ClInclude Include="..\..\include\SDL_pixels.h" />
+ <ClInclude Include="..\..\include\SDL_platform.h" />
+ <ClInclude Include="..\..\include\SDL_power.h" />
+ <ClInclude Include="..\..\include\SDL_quit.h" />
+ <ClInclude Include="..\..\include\SDL_rect.h" />
+ <ClInclude Include="..\..\include\SDL_render.h" />
+ <ClInclude Include="..\..\include\SDL_revision.h" />
+ <ClInclude Include="..\..\include\SDL_rwops.h" />
+ <ClInclude Include="..\..\include\SDL_scancode.h" />
+ <ClInclude Include="..\..\include\SDL_sensor.h" />
+ <ClInclude Include="..\..\include\SDL_shape.h" />
+ <ClInclude Include="..\..\include\SDL_stdinc.h" />
+ <ClInclude Include="..\..\include\SDL_surface.h" />
+ <ClInclude Include="..\..\include\SDL_system.h" />
+ <ClInclude Include="..\..\include\SDL_syswm.h" />
+ <ClInclude Include="..\..\include\SDL_test.h" />
+ <ClInclude Include="..\..\include\SDL_test_assert.h" />
+ <ClInclude Include="..\..\include\SDL_test_common.h" />
+ <ClInclude Include="..\..\include\SDL_test_compare.h" />
+ <ClInclude Include="..\..\include\SDL_test_crc32.h" />
+ <ClInclude Include="..\..\include\SDL_test_font.h" />
+ <ClInclude Include="..\..\include\SDL_test_fuzzer.h" />
+ <ClInclude Include="..\..\include\SDL_test_harness.h" />
+ <ClInclude Include="..\..\include\SDL_test_images.h" />
+ <ClInclude Include="..\..\include\SDL_test_log.h" />
+ <ClInclude Include="..\..\include\SDL_test_md5.h" />
+ <ClInclude Include="..\..\include\SDL_test_memory.h" />
+ <ClInclude Include="..\..\include\SDL_test_random.h" />
+ <ClInclude Include="..\..\include\SDL_thread.h" />
+ <ClInclude Include="..\..\include\SDL_timer.h" />
+ <ClInclude Include="..\..\include\SDL_touch.h" />
+ <ClInclude Include="..\..\include\SDL_types.h" />
+ <ClInclude Include="..\..\include\SDL_version.h" />
+ <ClInclude Include="..\..\include\SDL_video.h" />
+ <ClInclude Include="..\..\include\SDL_vulkan.h" />
+ <ClInclude Include="..\..\src\audio\directsound\SDL_directsound.h" />
+ <ClInclude Include="..\..\src\audio\disk\SDL_diskaudio.h" />
+ <ClInclude Include="..\..\src\audio\dummy\SDL_dummyaudio.h" />
+ <ClInclude Include="..\..\src\audio\SDL_audio_c.h" />
+ <ClInclude Include="..\..\src\audio\SDL_audiodev_c.h" />
+ <ClInclude Include="..\..\src\audio\SDL_sysaudio.h" />
+ <ClInclude Include="..\..\src\audio\SDL_wave.h" />
+ <ClInclude Include="..\..\src\audio\wasapi\SDL_wasapi.h" />
+ <ClInclude Include="..\..\src\audio\winmm\SDL_winmm.h" />
+ <ClInclude Include="..\..\src\core\gdk\SDL_gdk.h" />
+ <ClInclude Include="..\..\src\core\windows\SDL_directx.h" />
+ <ClInclude Include="..\..\src\core\windows\SDL_hid.h" />
+ <ClInclude Include="..\..\src\core\windows\SDL_windows.h" />
+ <ClInclude Include="..\..\src\core\windows\SDL_xinput.h" />
+ <ClInclude Include="..\..\src\dynapi\SDL_dynapi.h" />
+ <ClInclude Include="..\..\src\dynapi\SDL_dynapi_overrides.h" />
+ <ClInclude Include="..\..\src\dynapi\SDL_dynapi_procs.h" />
+ <ClInclude Include="..\..\src\events\blank_cursor.h" />
+ <ClInclude Include="..\..\src\events\default_cursor.h" />
+ <ClInclude Include="..\..\src\events\scancodes_windows.h" />
+ <ClInclude Include="..\..\src\events\SDL_clipboardevents_c.h" />
+ <ClInclude Include="..\..\src\events\SDL_displayevents_c.h" />
+ <ClInclude Include="..\..\src\events\SDL_dropevents_c.h" />
+ <ClInclude Include="..\..\src\events\SDL_events_c.h" />
+ <ClInclude Include="..\..\src\events\SDL_gesture_c.h" />
+ <ClInclude Include="..\..\src\events\SDL_keyboard_c.h" />
+ <ClInclude Include="..\..\src\events\SDL_mouse_c.h" />
+ <ClInclude Include="..\..\src\events\SDL_sysevents.h" />
+ <ClInclude Include="..\..\src\events\SDL_touch_c.h" />
+ <ClInclude Include="..\..\src\events\SDL_windowevents_c.h" />
+ <ClInclude Include="..\..\src\haptic\SDL_haptic_c.h" />
+ <ClInclude Include="..\..\src\haptic\SDL_syshaptic.h" />
+ <ClInclude Include="..\..\src\haptic\windows\SDL_dinputhaptic_c.h" />
+ <ClInclude Include="..\..\src\haptic\windows\SDL_windowshaptic_c.h" />
+ <ClInclude Include="..\..\src\haptic\windows\SDL_xinputhaptic_c.h" />
+ <ClInclude Include="..\..\src\hidapi\hidapi\hidapi.h" />
+ <ClInclude Include="..\..\src\hidapi\SDL_hidapi_c.h" />
+ <ClInclude Include="..\..\src\joystick\controller_type.h" />
+ <ClInclude Include="..\..\src\joystick\hidapi\SDL_hidapijoystick_c.h" />
+ <ClInclude Include="..\..\src\joystick\hidapi\SDL_hidapi_rumble.h" />
+ <ClInclude Include="..\..\src\joystick\SDL_gamecontrollerdb.h" />
+ <ClInclude Include="..\..\src\joystick\SDL_joystick_c.h" />
+ <ClInclude Include="..\..\src\joystick\SDL_sysjoystick.h" />
+ <ClInclude Include="..\..\src\joystick\usb_ids.h" />
+ <ClInclude Include="..\..\src\joystick\virtual\SDL_virtualjoystick_c.h" />
+ <ClInclude Include="..\..\src\joystick\windows\SDL_dinputjoystick_c.h" />
+ <ClInclude Include="..\..\src\joystick\windows\SDL_rawinputjoystick_c.h" />
+ <ClInclude Include="..\..\src\joystick\windows\SDL_windowsjoystick_c.h" />
+ <ClInclude Include="..\..\src\joystick\windows\SDL_xinputjoystick_c.h" />
+ <ClInclude Include="..\..\src\libm\math_libm.h" />
+ <ClInclude Include="..\..\src\libm\math_private.h" />
+ <ClInclude Include="..\..\src\locale\SDL_syslocale.h" />
+ <ClInclude Include="..\..\src\misc\SDL_sysurl.h" />
+ <ClInclude Include="..\..\src\power\SDL_syspower.h" />
+ <ClInclude Include="..\..\src\render\direct3d11\SDL_shaders_d3d11.h" />
+ <ClInclude Include="..\..\src\render\direct3d12\SDL_shaders_d3d12.h" />
+ <ClInclude Include="..\..\src\render\direct3d\SDL_shaders_d3d.h" />
+ <ClInclude Include="..\..\src\render\opengles2\SDL_gles2funcs.h" />
+ <ClInclude Include="..\..\src\render\opengles2\SDL_shaders_gles2.h" />
+ <ClInclude Include="..\..\src\render\opengl\SDL_glfuncs.h" />
+ <ClInclude Include="..\..\src\render\opengl\SDL_shaders_gl.h" />
+ <ClInclude Include="..\..\src\render\SDL_d3dmath.h" />
+ <ClInclude Include="..\..\src\render\SDL_sysrender.h" />
+ <ClInclude Include="..\..\src\render\SDL_yuv_sw_c.h" />
+ <ClInclude Include="..\..\src\render\software\SDL_blendfillrect.h" />
+ <ClInclude Include="..\..\src\render\software\SDL_blendline.h" />
+ <ClInclude Include="..\..\src\render\software\SDL_blendpoint.h" />
+ <ClInclude Include="..\..\src\render\software\SDL_draw.h" />
+ <ClInclude Include="..\..\src\render\software\SDL_drawline.h" />
+ <ClInclude Include="..\..\src\render\software\SDL_drawpoint.h" />
+ <ClInclude Include="..\..\src\render\software\SDL_render_sw_c.h" />
+ <ClInclude Include="..\..\src\render\software\SDL_rotate.h" />
+ <ClInclude Include="..\..\src\render\software\SDL_triangle.h" />
+ <ClInclude Include="..\..\src\SDL_assert_c.h" />
+ <ClInclude Include="..\..\src\SDL_dataqueue.h" />
+ <ClInclude Include="..\..\src\SDL_error_c.h" />
+ <ClCompile Include="..\..\src\core\gdk\SDL_gdk.cpp" />
+ <ClCompile Include="..\..\src\SDL_guid.c" />
+ <ClInclude Include="..\..\src\SDL_hints_c.h" />
+ <ClInclude Include="..\..\src\SDL_internal.h" />
+ <ClInclude Include="..\..\src\SDL_list.h" />
+ <ClInclude Include="..\..\src\SDL_log_c.h" />
+ <ClInclude Include="..\..\src\sensor\dummy\SDL_dummysensor.h" />
+ <ClInclude Include="..\..\src\sensor\SDL_sensor_c.h" />
+ <ClInclude Include="..\..\src\sensor\SDL_syssensor.h" />
+ <ClInclude Include="..\..\src\sensor\windows\SDL_windowssensor.h" />
+ <ClInclude Include="..\..\src\thread\SDL_systhread.h" />
+ <ClInclude Include="..\..\src\thread\SDL_thread_c.h" />
+ <ClInclude Include="..\..\src\thread\generic\SDL_syscond_c.h" />
+ <ClInclude Include="..\..\src\thread\windows\SDL_sysmutex_c.h" />
+ <ClInclude Include="..\..\src\thread\windows\SDL_systhread_c.h" />
+ <ClInclude Include="..\..\src\timer\SDL_timer_c.h" />
+ <ClInclude Include="..\..\src\video\dummy\SDL_nullevents_c.h" />
+ <ClInclude Include="..\..\src\video\dummy\SDL_nullframebuffer_c.h" />
+ <ClInclude Include="..\..\src\video\dummy\SDL_nullvideo.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vk_icd.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vk_layer.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vk_platform.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vk_sdk_platform.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.hpp" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_android.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_beta.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_core.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_directfb.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_fuchsia.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_ggp.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_ios.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_macos.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_metal.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_vi.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_wayland.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_win32.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_xcb.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_xlib.h" />
+ <ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_xlib_xrandr.h" />
+ <ClInclude Include="..\..\src\video\SDL_blit.h" />
+ <ClInclude Include="..\..\src\video\SDL_blit_auto.h" />
+ <ClInclude Include="..\..\src\video\SDL_blit_copy.h" />
+ <ClInclude Include="..\..\src\video\SDL_blit_slow.h" />
+ <ClInclude Include="..\..\src\video\SDL_egl_c.h" />
+ <ClInclude Include="..\..\src\video\SDL_pixels_c.h" />
+ <ClInclude Include="..\..\src\video\SDL_rect_c.h" />
+ <ClInclude Include="..\..\src\video
(Patch may be truncated, please check the link at the top of this post.)