SDL: removed WinRT support.

From dc2a3e06e9218cd269f077c34d7adf709de133e0 Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Tue, 22 Nov 2022 23:36:24 +0300
Subject: [PATCH] removed WinRT support.

---
 .github/workflows/msvc.yml                    |   3 -
 CMakeLists.txt                                | 107 +--
 Makefile.in                                   |   2 +-
 VisualC-WinRT/SDL-UWP.sln                     |  40 -
 VisualC-WinRT/SDL-UWP.vcxproj                 | 594 ------------
 VisualC-WinRT/SDL-UWP.vcxproj.filters         | 849 ----------------
 build-scripts/fnsince.pl                      |   6 -
 cmake/test/CMakeLists.txt                     |   4 +-
 docs/README-winrt.md                          | 519 ----------
 docs/README.md                                |   1 -
 include/SDL_config.h                          |   2 -
 include/SDL_config.h.cmake                    |   2 -
 include/SDL_config_windows.h                  |   2 -
 include/SDL_config_winrt.h                    | 220 -----
 include/SDL_cpuinfo.h                         |   2 +-
 include/SDL_main.h                            |  28 -
 include/SDL_platform.h                        |   3 +-
 include/SDL_system.h                          | 103 --
 include/SDL_syswm.h                           |  11 -
 include/begin_code.h                          |   4 +-
 src/SDL.c                                     |   4 +-
 src/SDL_log.c                                 |  14 +-
 src/atomic/SDL_spinlock.c                     |   2 +-
 src/audio/wasapi/SDL_wasapi.c                 |   2 +-
 src/audio/wasapi/SDL_wasapi_win32.c           |   4 +-
 src/audio/wasapi/SDL_wasapi_winrt.cpp         | 447 ---------
 src/core/windows/SDL_hid.c                    |   4 -
 src/core/windows/SDL_hid.h                    |   4 -
 src/core/windows/SDL_windows.c                |  37 +-
 src/core/windows/SDL_windows.h                |   2 -
 src/core/windows/SDL_xinput.c                 |   6 +-
 src/core/winrt/SDL_winrtapp_common.cpp        |  67 --
 src/core/winrt/SDL_winrtapp_common.h          |  31 -
 src/core/winrt/SDL_winrtapp_direct3d.cpp      | 797 ---------------
 src/core/winrt/SDL_winrtapp_direct3d.h        |  92 --
 src/core/winrt/SDL_winrtapp_xaml.cpp          | 160 ---
 src/core/winrt/SDL_winrtapp_xaml.h            |  33 -
 src/cpuinfo/SDL_cpuinfo.c                     |   4 +-
 src/dynapi/SDL_dynapi.h                       |   2 -
 src/dynapi/SDL_dynapi_overrides.h             |   4 -
 src/dynapi/SDL_dynapi_procs.h                 |   8 -
 src/file/SDL_rwops.c                          |   3 -
 src/filesystem/winrt/SDL_sysfilesystem.cpp    | 242 -----
 src/joystick/SDL_joystick.c                   |   4 -
 src/joystick/windows/SDL_rawinputjoystick.c   |   5 -
 .../windows/SDL_windows_gaming_input.c        |  27 +-
 src/joystick/windows/SDL_windowsjoystick.c    |  14 +-
 src/joystick/windows/SDL_xinputjoystick.c     |  10 +-
 src/loadso/windows/SDL_sysloadso.c            |   8 -
 src/locale/winrt/SDL_syslocale.c              |  58 --
 .../winrt/SDL3-WinRTResource_BlankCursor.cur  | Bin 326 -> 0 bytes
 src/main/winrt/SDL3-WinRTResources.rc         |   3 -
 src/main/winrt/SDL_winrt_main_NonXAML.cpp     |  54 --
 src/misc/winrt/SDL_sysurl.cpp                 |  41 -
 src/power/SDL_power.c                         |   3 -
 src/power/SDL_syspower.h                      |   1 -
 src/power/winrt/SDL_syspower.cpp              |  44 -
 src/render/direct3d11/SDL_render_d3d11.c      |  57 +-
 src/render/direct3d11/SDL_render_winrt.cpp    | 116 ---
 src/render/direct3d11/SDL_render_winrt.h      |  40 -
 src/render/opengles2/SDL_render_gles2.c       |   8 -
 src/thread/stdcpp/SDL_systhread.cpp           |  31 -
 src/thread/windows/SDL_syscond_cv.c           |  12 -
 src/thread/windows/SDL_sysmutex.c             |  16 -
 src/thread/windows/SDL_syssem.c               |  15 -
 src/thread/windows/SDL_systhread.c            |   4 +-
 src/thread/windows/SDL_systls.c               |  12 -
 src/timer/windows/SDL_systimer.c              |  22 +-
 src/video/SDL_egl.c                           |  10 +-
 src/video/SDL_stretch.c                       |   2 +-
 src/video/SDL_sysvideo.h                      |   1 -
 src/video/SDL_video.c                         |  55 +-
 src/video/winrt/SDL_winrtevents.cpp           | 153 ---
 src/video/winrt/SDL_winrtevents_c.h           |  83 --
 src/video/winrt/SDL_winrtgamebar.cpp          | 196 ----
 src/video/winrt/SDL_winrtgamebar_cpp.h        |  35 -
 src/video/winrt/SDL_winrtkeyboard.cpp         | 466 ---------
 src/video/winrt/SDL_winrtmessagebox.cpp       | 118 ---
 src/video/winrt/SDL_winrtmessagebox.h         |  29 -
 src/video/winrt/SDL_winrtmouse.cpp            | 222 -----
 src/video/winrt/SDL_winrtmouse_c.h            |  40 -
 src/video/winrt/SDL_winrtopengles.cpp         | 203 ----
 src/video/winrt/SDL_winrtopengles.h           |  70 --
 src/video/winrt/SDL_winrtpointerinput.cpp     | 407 --------
 src/video/winrt/SDL_winrtvideo.cpp            | 907 ------------------
 src/video/winrt/SDL_winrtvideo_cpp.h          | 106 --
 86 files changed, 81 insertions(+), 8098 deletions(-)
 delete mode 100644 VisualC-WinRT/SDL-UWP.sln
 delete mode 100644 VisualC-WinRT/SDL-UWP.vcxproj
 delete mode 100644 VisualC-WinRT/SDL-UWP.vcxproj.filters
 delete mode 100644 docs/README-winrt.md
 delete mode 100644 include/SDL_config_winrt.h
 delete mode 100644 src/audio/wasapi/SDL_wasapi_winrt.cpp
 delete mode 100644 src/core/winrt/SDL_winrtapp_common.cpp
 delete mode 100644 src/core/winrt/SDL_winrtapp_common.h
 delete mode 100644 src/core/winrt/SDL_winrtapp_direct3d.cpp
 delete mode 100644 src/core/winrt/SDL_winrtapp_direct3d.h
 delete mode 100644 src/core/winrt/SDL_winrtapp_xaml.cpp
 delete mode 100644 src/core/winrt/SDL_winrtapp_xaml.h
 delete mode 100644 src/filesystem/winrt/SDL_sysfilesystem.cpp
 delete mode 100644 src/locale/winrt/SDL_syslocale.c
 delete mode 100644 src/main/winrt/SDL3-WinRTResource_BlankCursor.cur
 delete mode 100644 src/main/winrt/SDL3-WinRTResources.rc
 delete mode 100644 src/main/winrt/SDL_winrt_main_NonXAML.cpp
 delete mode 100644 src/misc/winrt/SDL_sysurl.cpp
 delete mode 100644 src/power/winrt/SDL_syspower.cpp
 delete mode 100644 src/render/direct3d11/SDL_render_winrt.cpp
 delete mode 100644 src/render/direct3d11/SDL_render_winrt.h
 delete mode 100644 src/video/winrt/SDL_winrtevents.cpp
 delete mode 100644 src/video/winrt/SDL_winrtevents_c.h
 delete mode 100644 src/video/winrt/SDL_winrtgamebar.cpp
 delete mode 100644 src/video/winrt/SDL_winrtgamebar_cpp.h
 delete mode 100644 src/video/winrt/SDL_winrtkeyboard.cpp
 delete mode 100644 src/video/winrt/SDL_winrtmessagebox.cpp
 delete mode 100644 src/video/winrt/SDL_winrtmessagebox.h
 delete mode 100644 src/video/winrt/SDL_winrtmouse.cpp
 delete mode 100644 src/video/winrt/SDL_winrtmouse_c.h
 delete mode 100644 src/video/winrt/SDL_winrtopengles.cpp
 delete mode 100644 src/video/winrt/SDL_winrtopengles.h
 delete mode 100644 src/video/winrt/SDL_winrtpointerinput.cpp
 delete mode 100644 src/video/winrt/SDL_winrtvideo.cpp
 delete mode 100644 src/video/winrt/SDL_winrtvideo_cpp.h

diff --git a/.github/workflows/msvc.yml b/.github/workflows/msvc.yml
index 01d95485da10..0af15d9eb32b 100644
--- a/.github/workflows/msvc.yml
+++ b/.github/workflows/msvc.yml
@@ -19,8 +19,6 @@ jobs:
         - { name: Windows (clang-cl x86), flags: -T ClangCL -A Win32 }
         - { name: Windows (ARM),          flags: -A ARM }
         - { name: Windows (ARM64),        flags: -A ARM64 }
-        - { name: UWP (x64),              flags: -A x64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION="10.0" -DSDL_TESTS=OFF, nowerror: true,
-            project: VisualC-WinRT/SDL-UWP.sln, projectflags: '/p:Platform=x64 /p:WindowsTargetPlatformVersion=10.0.17763.0' }
 
     steps:
     - uses: actions/checkout@v3
@@ -59,7 +57,6 @@ jobs:
         echo "SDL3_DIR=$Env:GITHUB_WORKSPACE/prefix" >> $Env:GITHUB_ENV
         cmake --install build/
     - name: Verify CMake configuration files
-      if: ${{ !contains(matrix.platform.name, 'UWP') }}  # FIXME: cmake/test/CMakeLists.txt should support UWP
       run: |
         cmake -S cmake/test -B cmake_config_build `
           -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} `
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3aeeae1ee2de..130cfa7fab83 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,12 +26,6 @@ set(EXTRA_LDFLAGS)
 #  etc. See https://github.com/libsdl-org/SDL/issues/4150
 add_library(sdl-build-options INTERFACE)
 
-if(WINDOWS_STORE)
-  cmake_minimum_required(VERSION 3.11.0)
-  target_compile_definitions(sdl-build-options INTERFACE "-DSDL_BUILDING_WINRT=1")
-  target_compile_options(sdl-build-options INTERFACE "-ZW")
-endif()
-
 # Build in parallel under Visual Studio. Not enabled by default.
 if(MSVC)
   target_compile_options(sdl-build-options INTERFACE "/MP")
@@ -239,7 +233,7 @@ endif()
 #  so we'll just use libusb when it's available. libusb does not support iOS,
 #  so we default to yes on iOS.
 #  TODO: Windows can support libusb, the hid.c file just depends on Unix APIs
-if((WINDOWS AND NOT WINDOWS_STORE) OR IOS OR TVOS OR ANDROID)
+if(WINDOWS OR IOS OR TVOS OR ANDROID)
   set(HIDAPI_SKIP_LIBUSB TRUE)
 else()
   set(HIDAPI_SKIP_LIBUSB FALSE)
@@ -1665,11 +1659,6 @@ elseif(WINDOWS)
   file(GLOB CORE_SOURCES ${SDL3_SOURCE_DIR}/src/core/windows/*.c)
   list(APPEND SOURCE_FILES ${CORE_SOURCES})
 
-  if(WINDOWS_STORE)
-    file(GLOB WINRT_SOURCE_FILES ${SDL3_SOURCE_DIR}/src/core/winrt/*.c ${SDL3_SOURCE_DIR}/src/core/winrt/*.cpp)
-    list(APPEND SOURCE_FILES ${WINRT_SOURCE_FILES})
-  endif()
-
   if(MSVC AND NOT SDL_LIBC)
     # Prevent codegen that would use the VC runtime libraries.
     set_property(DIRECTORY . APPEND PROPERTY COMPILE_OPTIONS "/GS-")
@@ -1679,11 +1668,7 @@ elseif(WINDOWS)
   endif()
 
   if(SDL_MISC)
-    if(WINDOWS_STORE)
-      file(GLOB MISC_SOURCES ${SDL3_SOURCE_DIR}/src/misc/winrt/*.cpp)
-    else()
-      file(GLOB MISC_SOURCES ${SDL3_SOURCE_DIR}/src/misc/windows/*.c)
-    endif()
+    file(GLOB MISC_SOURCES ${SDL3_SOURCE_DIR}/src/misc/windows/*.c)
     list(APPEND SOURCE_FILES ${MISC_SOURCES})
     set(HAVE_SDL_MISC TRUE)
   endif()
@@ -1713,7 +1698,7 @@ elseif(WINDOWS)
     check_include_file(ddraw.h HAVE_DDRAW_H)
     check_include_file(dsound.h HAVE_DSOUND_H)
     check_include_file(dinput.h HAVE_DINPUT_H)
-    if(WINDOWS_STORE OR CMAKE_GENERATOR_PLATFORM STREQUAL "ARM")
+    if(CMAKE_GENERATOR_PLATFORM STREQUAL "ARM")
       set(HAVE_DINPUT_H 0)
     endif()
     check_include_file(dxgi.h HAVE_DXGI_H)
@@ -1760,7 +1745,7 @@ elseif(WINDOWS)
   check_include_file(shellscalingapi.h HAVE_SHELLSCALINGAPI_H)
 
   if(SDL_AUDIO)
-    if(HAVE_DSOUND_H AND NOT WINDOWS_STORE)
+    if(HAVE_DSOUND_H)
       set(SDL_AUDIO_DRIVER_DSOUND 1)
       file(GLOB DSOUND_AUDIO_SOURCES ${SDL3_SOURCE_DIR}/src/audio/directsound/*.c)
       list(APPEND SOURCE_FILES ${DSOUND_AUDIO_SOURCES})
@@ -1771,9 +1756,6 @@ elseif(WINDOWS)
       set(SDL_AUDIO_DRIVER_WASAPI 1)
       set(HAVE_WASAPI TRUE)
       file(GLOB WASAPI_AUDIO_SOURCES ${SDL3_SOURCE_DIR}/src/audio/wasapi/*.c)
-      if(WINDOWS_STORE)
-        list(APPEND WASAPI_AUDIO_SOURCES ${SDL3_SOURCE_DIR}/src/audio/wasapi/SDL_wasapi_winrt.cpp)
-      endif()
       list(APPEND SOURCE_FILES ${WASAPI_AUDIO_SOURCES})
       set(HAVE_SDL_AUDIO TRUE)
     endif()
@@ -1784,20 +1766,11 @@ elseif(WINDOWS)
     if(NOT SDL_LOADSO)
       message_error("SDL_VIDEO requires SDL_LOADSO, which is not enabled")
     endif()
-    if(WINDOWS_STORE)
-      set(SDL_VIDEO_DRIVER_WINRT 1)
-      file(GLOB WIN_VIDEO_SOURCES
-        ${SDL3_SOURCE_DIR}/src/video/winrt/*.c
-        ${SDL3_SOURCE_DIR}/src/video/winrt/*.cpp
-        ${SDL3_SOURCE_DIR}/src/render/direct3d11/*.cpp
-        )
-    else()
-      set(SDL_VIDEO_DRIVER_WINDOWS 1)
-      file(GLOB WIN_VIDEO_SOURCES ${SDL3_SOURCE_DIR}/src/video/windows/*.c)
-    endif()
+    set(SDL_VIDEO_DRIVER_WINDOWS 1)
+    file(GLOB WIN_VIDEO_SOURCES ${SDL3_SOURCE_DIR}/src/video/windows/*.c)
     list(APPEND SOURCE_FILES ${WIN_VIDEO_SOURCES})
 
-    if(SDL_RENDER_D3D AND HAVE_D3D_H AND NOT WINDOWS_STORE)
+    if(SDL_RENDER_D3D AND HAVE_D3D_H)
       set(SDL_VIDEO_RENDER_D3D 1)
       set(HAVE_RENDER_D3D TRUE)
     endif()
@@ -1805,7 +1778,7 @@ elseif(WINDOWS)
       set(SDL_VIDEO_RENDER_D3D11 1)
       set(HAVE_RENDER_D3D TRUE)
     endif()
-    if(SDL_RENDER_D3D AND HAVE_D3D12_H AND NOT WINDOWS_STORE)
+    if(SDL_RENDER_D3D AND HAVE_D3D12_H)
       set(SDL_VIDEO_RENDER_D3D12 1)
       set(HAVE_RENDER_D3D TRUE)
     endif()
@@ -1825,7 +1798,7 @@ elseif(WINDOWS)
     set(HAVE_SDL_THREADS TRUE)
   endif()
 
-  if(SDL_SENSOR AND HAVE_SENSORSAPI_H AND NOT WINDOWS_STORE)
+  if(SDL_SENSOR AND HAVE_SENSORSAPI_H)
     set(SDL_SENSOR_WINDOWS 1)
     set(HAVE_SDL_SENSORS TRUE)
     file(GLOB WINDOWS_SENSOR_SOURCES ${SDL3_SOURCE_DIR}/src/sensor/windows/*.c)
@@ -1833,50 +1806,26 @@ elseif(WINDOWS)
   endif()
 
   if(SDL_POWER)
-    if(WINDOWS_STORE)
-      set(SDL_POWER_WINRT 1)
-      list(APPEND SOURCE_FILES ${SDL3_SOURCE_DIR}/src/power/winrt/SDL_syspower.cpp)
-    else()
-      set(SDL_POWER_WINDOWS 1)
-      list(APPEND SOURCE_FILES ${SDL3_SOURCE_DIR}/src/power/windows/SDL_syspower.c)
-      set(HAVE_SDL_POWER TRUE)
-    endif()
+    set(SDL_POWER_WINDOWS 1)
+    list(APPEND SOURCE_FILES ${SDL3_SOURCE_DIR}/src/power/windows/SDL_syspower.c)
+    set(HAVE_SDL_POWER TRUE)
   endif()
 
   if(SDL_LOCALE)
-    if(WINDOWS_STORE)
-      file(GLOB LOCALE_SOURCES ${SDL3_SOURCE_DIR}/src/locale/winrt/*.c)
-    else()
-      file(GLOB LOCALE_SOURCES ${SDL3_SOURCE_DIR}/src/locale/windows/*.c)
-    endif()
+    file(GLOB LOCALE_SOURCES ${SDL3_SOURCE_DIR}/src/locale/windows/*.c)
     list(APPEND SOURCE_FILES ${LOCALE_SOURCES})
     set(HAVE_SDL_LOCALE TRUE)
   endif()
 
   if(SDL_FILESYSTEM)
     set(SDL_FILESYSTEM_WINDOWS 1)
-    if(WINDOWS_STORE)
-      file(GLOB FILESYSTEM_SOURCES ${SDL3_SOURCE_DIR}/src/filesystem/winrt/*.cpp)
-    else()
-      file(GLOB FILESYSTEM_SOURCES ${SDL3_SOURCE_DIR}/src/filesystem/windows/*.c)
-    endif()
+    file(GLOB FILESYSTEM_SOURCES ${SDL3_SOURCE_DIR}/src/filesystem/windows/*.c)
     list(APPEND SOURCE_FILES ${FILESYSTEM_SOURCES})
     set(HAVE_SDL_FILESYSTEM TRUE)
   endif()
 
   # Libraries for Win32 native and MinGW
-  if(NOT WINDOWS_STORE)
-    list(APPEND EXTRA_LIBS user32 gdi32 winmm imm32 ole32 oleaut32 version uuid advapi32 setupapi shell32)
-  endif()
-
-  if(WINDOWS_STORE)
-    list(APPEND EXTRA_LIBS
-      -nodefaultlib:vccorlib$<$<CONFIG:Debug>:d>
-      -nodefaultlib:msvcrt$<$<CONFIG:Debug>:d>
-      vccorlib$<$<CONFIG:Debug>:d>.lib
-      msvcrt$<$<CONFIG:Debug>:d>.lib
-    )
-  endif()
+  list(APPEND EXTRA_LIBS user32 gdi32 winmm imm32 ole32 oleaut32 version uuid advapi32 setupapi shell32)
 
   if(SDL_TIMERS)
     set(SDL_TIMER_WINDOWS 1)
@@ -1896,7 +1845,7 @@ elseif(WINDOWS)
   list(APPEND SOURCE_FILES ${CORE_SOURCES})
 
   if(SDL_VIDEO)
-    if(SDL_OPENGL AND NOT WINDOWS_STORE)
+    if(SDL_OPENGL)
       set(SDL_VIDEO_OPENGL 1)
       set(SDL_VIDEO_OPENGL_WGL 1)
       set(SDL_VIDEO_RENDER_OGL 1)
@@ -1924,18 +1873,14 @@ elseif(WINDOWS)
     file(GLOB JOYSTICK_SOURCES ${SDL3_SOURCE_DIR}/src/joystick/windows/*.c)
     list(APPEND SOURCE_FILES ${JOYSTICK_SOURCES})
 
-    if(NOT WINDOWS_STORE)
-      set(SDL_JOYSTICK_RAWINPUT 1)
-    endif()
+    set(SDL_JOYSTICK_RAWINPUT 1)
     if(HAVE_DINPUT_H)
       set(SDL_JOYSTICK_DINPUT 1)
       list(APPEND EXTRA_LIBS dinput8)
     endif()
     if(HAVE_XINPUT_H)
-      if(NOT WINDOWS_STORE)
-        set(SDL_JOYSTICK_XINPUT 1)
-        set(HAVE_XINPUT TRUE)
-      endif()
+      set(SDL_JOYSTICK_XINPUT 1)
+      set(HAVE_XINPUT TRUE)
       if(HAVE_WINDOWS_GAMING_INPUT_H)
         set(SDL_JOYSTICK_WGI 1)
       endif()
@@ -1943,7 +1888,7 @@ elseif(WINDOWS)
     set(HAVE_SDL_JOYSTICK TRUE)
 
     if(SDL_HAPTIC)
-      if((HAVE_DINPUT_H OR HAVE_XINPUT_H) AND NOT WINDOWS_STORE)
+      if(HAVE_DINPUT_H OR HAVE_XINPUT_H)
         file(GLOB HAPTIC_SOURCES ${SDL3_SOURCE_DIR}/src/haptic/windows/*.c)
         if(HAVE_DINPUT_H)
           set(SDL_HAPTIC_DINPUT 1)
@@ -3117,7 +3062,7 @@ endif()
 # Ensure that the extra cflags are used at compile time
 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${EXTRA_CFLAGS_BUILD}")
 
-if(NOT WINDOWS_STORE AND NOT SDL3_DISABLE_SDL3MAIN)
+if(NOT SDL3_DISABLE_SDL3MAIN)
   # Build SDLmain
   add_library(SDL3main STATIC ${SDLMAIN_SOURCES})
   add_dependencies(SDL3main sdl_headers_copy)
@@ -3199,10 +3144,8 @@ if(SDL_SHARED)
   # Note: The clang toolset for Visual Studio does not support /NODEFAULTLIB.
   if(MSVC AND NOT SDL_LIBC AND NOT MSVC_CLANG AND NOT CMAKE_GENERATOR_PLATFORM STREQUAL "ARM")
     # Don't try to link with the default set of libraries.
-    if(NOT WINDOWS_STORE)
-      set_target_properties(SDL3 PROPERTIES LINK_FLAGS_RELEASE "/NODEFAULTLIB")
-      set_target_properties(SDL3 PROPERTIES LINK_FLAGS_DEBUG "/NODEFAULTLIB")
-    endif()
+    set_target_properties(SDL3 PROPERTIES LINK_FLAGS_RELEASE "/NODEFAULTLIB")
+    set_target_properties(SDL3 PROPERTIES LINK_FLAGS_DEBUG "/NODEFAULTLIB")
     set_target_properties(SDL3 PROPERTIES STATIC_LIBRARY_FLAGS "/NODEFAULTLIB")
   endif()
   # FIXME: if CMAKE_VERSION >= 3.13, use target_link_options for EXTRA_LDFLAGS
@@ -3284,7 +3227,7 @@ if(NOT SDL3_DISABLE_INSTALL)
       RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
   endif()
 
-  if(NOT WINDOWS_STORE AND NOT SDL3_DISABLE_SDL3MAIN)
+  if(NOT SDL3_DISABLE_SDL3MAIN)
     install(TARGETS SDL3main EXPORT SDL3mainTargets
       LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
       ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
@@ -3337,7 +3280,7 @@ if(NOT SDL3_DISABLE_INSTALL)
     endif()
   endif()
 
-  if(NOT WINDOWS_STORE AND NOT SDL3_DISABLE_SDL3MAIN)
+  if(NOT SDL3_DISABLE_SDL3MAIN)
     install(EXPORT SDL3mainTargets
       FILE SDL3mainTargets.cmake
       NAMESPACE SDL3::
diff --git a/Makefile.in b/Makefile.in
index 02700ab63047..5ff6e8beb463 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -51,7 +51,7 @@ WAYLAND_SCANNER_CODE_MODE = @WAYLAND_SCANNER_CODE_MODE@
 
 INSTALL_SDL3_CONFIG = @INSTALL_SDL3_CONFIG@
 
-SRC_DIST = *.md *.txt acinclude Android.mk autogen.sh android-project build-scripts cmake cmake_uninstall.cmake.in configure configure.ac docs include Makefile.* mingw sdl3-config.cmake.in sdl3-config-version.cmake.in sdl3-config.in sdl3.m4 sdl3.pc.in SDL3.spec.in SDL3Config.cmake.in src test VisualC VisualC-WinRT Xcode Xcode-iOS wayland-protocols
+SRC_DIST = *.md *.txt acinclude Android.mk autogen.sh android-project build-scripts cmake cmake_uninstall.cmake.in configure configure.ac docs include Makefile.* mingw sdl3-config.cmake.in sdl3-config-version.cmake.in sdl3-config.in sdl3.m4 sdl3.pc.in SDL3.spec.in SDL3Config.cmake.in src test VisualC Xcode Xcode-iOS wayland-protocols
 GEN_DIST = SDL3.spec
 
 ifneq ($V,1)
diff --git a/VisualC-WinRT/SDL-UWP.sln b/VisualC-WinRT/SDL-UWP.sln
deleted file mode 100644
index 62f9f04172bb..000000000000
--- a/VisualC-WinRT/SDL-UWP.sln
+++ /dev/null
@@ -1,40 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL3-UWP", "SDL-UWP.vcxproj", "{89E9B32E-A86A-47C3-A948-D2B1622925CE}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|ARM = Debug|ARM
-		Debug|ARM64 = Debug|ARM64
-		Debug|x64 = Debug|x64
-		Debug|x86 = Debug|x86
-		Release|ARM = Release|ARM
-		Release|ARM64 = Release|ARM64
-		Release|x64 = Release|x64
-		Release|x86 = Release|x86
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|ARM.ActiveCfg = Debug|ARM
-		{89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|ARM.Build.0 = Debug|ARM
-		{89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|ARM64.ActiveCfg = Debug|ARM64
-		{89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|ARM64.Build.0 = Debug|ARM64
-		{89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|x64.ActiveCfg = Debug|x64
-		{89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|x64.Build.0 = Debug|x64
-		{89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|x86.ActiveCfg = Debug|Win32
-		{89E9B32E-A86A-47C3-A948-D2B1622925CE}.Debug|x86.Build.0 = Debug|Win32
-		{89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|ARM.ActiveCfg = Release|ARM
-		{89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|ARM.Build.0 = Release|ARM
-		{89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|ARM64.ActiveCfg = Release|ARM64
-		{89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|ARM64.Build.0 = Release|ARM64
-		{89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|x64.ActiveCfg = Release|x64
-		{89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|x64.Build.0 = Release|x64
-		{89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|x86.ActiveCfg = Release|Win32
-		{89E9B32E-A86A-47C3-A948-D2B1622925CE}.Release|x86.Build.0 = Release|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
diff --git a/VisualC-WinRT/SDL-UWP.vcxproj b/VisualC-WinRT/SDL-UWP.vcxproj
deleted file mode 100644
index a34357e73372..000000000000
--- a/VisualC-WinRT/SDL-UWP.vcxproj
+++ /dev/null
@@ -1,594 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|ARM64">
-      <Configuration>Debug</Configuration>
-      <Platform>ARM64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|ARM">
-      <Configuration>Debug</Configuration>
-      <Platform>ARM</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|ARM">
-      <Configuration>Release</Configuration>
-      <Platform>ARM</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|ARM64">
-      <Configuration>Release</Configuration>
-      <Platform>ARM64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <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_blendmode.h" />
-    <ClInclude Include="..\include\SDL_clipboard.h" />
-    <ClInclude Include="..\include\SDL_config.h" />
-    <ClInclude Include="..\include\SDL_config_minimal.h" />
-    <ClInclude Include="..\include\SDL_config_winrt.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_guid.h" />
-    <ClInclude Include="..\include\SDL_haptic.h" />
-    <ClInclude Include="..\include\SDL_hints.h" />
-    <ClInclude Include="..\include\SDL_hidapi.h" />
-    <ClInclude Include="..\include\SDL_input.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_misc.h" />
-    <ClInclude Include="..\include\SDL_mouse.h" />
-    <ClInclude Include="..\include\SDL_mutex.h" />
-    <ClInclude Include="..\include\SDL_name.h" />
-    <ClInclude Include="..\include\SDL_opengles2.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_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="..\src\audio\disk\SDL_diskaudio.h" />
-    <ClInclude Include="..\src\audio\dummy\SDL_dummyaudio.h" />
-    <ClInclude Include="..\src\audio\SDL_audiodev_c.h" />
-    <ClInclude Include="..\src\audio\SDL_audio_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\core\windows\SDL_directx.h" />
-    <ClInclude Include="..\src\core\windows\SDL_windows.h" />
-    <ClInclude Include="..\src\core\windows\SDL_xinput.h" />
-    <ClInclude Include="..\src\core\winrt\SDL_winrtapp_common.h" />
-    <ClInclude Include="..\src\core\winrt\SDL_winrtapp_direct3d.h" />
-    <ClInclude Include="..\src\core\winrt\SDL_winrtapp_xaml.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\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_keyboard_c.h" />
-    <ClInclude Include="..\src\events\SDL_mouse_c.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\joystick\controller_type.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\virtual\SDL_virtualjoystick_c.h" />
-    <ClInclude Include="..\src\joystick\windows\SDL_dinputjoystick_c.h" />
-    <ClInclude Include="..\src\joystick\windows\SDL_windowsjoystick_c.h" />
-    <ClInclude Include="..\src\joystick\windows\SDL_xinputjoystick_c.h" />
-    <ClInclude Include="..\src\locale\SDL_syslocale.h" />
-    <ClInclude Include="..\src\render\direct3d11\SDL_render_winrt.h" />
-    <ClInclude Include="..\src\render\direct3d11\SDL_shaders_d3d11.h" />
-    <ClInclude Include="..\src\render\opengles2\SDL_gles2funcs.h" />
-    <ClInclude Include="..\src\render\opengles2\SDL_shaders_gles2.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" />
-    <ClInclude Include="..\src\SDL_fatal.h" />
-    <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\thread\SDL_systhread.h" />
-    <ClInclude Include="..\src\thread\SDL_thread_c.h" />
-    <ClInclude Include="..\src\thread\stdcpp\SDL_sysmutex_c.h" />
-    <ClInclude Include="..\src\thread\stdcpp\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\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\SDL_RLEaccel_c.h" />
-    <ClInclude Include="..\src\video\SDL_shape_internals.h" />
-    <ClInclude Include="..\src\video\SDL_sysvideo.h" />
-    <ClInclude Include="..\src\video\SDL_yuv_c.h" />
-    <ClInclude Include="..\src\video\winrt\SDL_winrtevents_c.h" />
-    <ClInclude Include="..\src\video\winrt\SDL_winrtgamebar_cpp.h" />
-    <ClInclude Include="..\src\video\winrt\SDL_winrtmessagebox.h" />
-    <ClInclude Include="..\src\video\winrt\SDL_winrtmouse_c.h" />
-    <ClInclude Include="..\src\video\winrt\SDL_winrtopengles.h" />
-    <ClInclude Include="..\src\video\winrt\SDL_winr

(Patch may be truncated, please check the link at the top of this post.)