SDL: Make WinRT's SDL_main header-only

From 28b93451dca95246d8538566381e52b31e525337 Mon Sep 17 00:00:00 2001
From: Daniel Gibson <[EMAIL REDACTED]>
Date: Mon, 12 Dec 2022 01:22:43 +0100
Subject: [PATCH] Make WinRT's SDL_main header-only

As the implementation requires C++, the user will have to include
SDL_main.h in a C++ source file (that needs to be compiled with /ZW).
It's ok to keep the standard main() implementation in plain C and use
an otherwise empty C++ source file for the SDL_main implementation part,
if both source files #include <SDL3/SDL_main.h>

Including SDL_main.h in a C source file will print a message at
compilation (when building for WinRT or possibly other not yet implemented
platforms that require C++ for main), to remind the user of also
including it in a .cpp source file. This message/warning can be disabled
with #define SDL_MAIN_NOIMPL before including SDL_main.h in the C file.
When including it in a .cpp file, there will be a compiler error with
helpful message if it's not compiled with /ZW

For this I renamend _SDL_MAIN_NOIMPL to SDL_MAIN_NOIMPL, because now it's
not for internal use only anymore, but also useful for users (that want
their main() function in a different file than the SDL_main implementation)

Add a project for the testdraw2.c test to the WinRT solution to at least
get some minimal testing on WinRT.
I won't add all tests because it's a lot of manual clicking per test,
but this should be better than nothing :)
---
 VisualC-WinRT/SDL-UWP.sln                     |  33 +-
 VisualC-WinRT/SDL-UWP.vcxproj                 |   1 +
 VisualC-WinRT/SDL-UWP.vcxproj.filters         |   3 +
 .../Assets/LockScreenLogo.scale-200.png       | Bin 0 -> 1430 bytes
 .../Assets/SplashScreen.scale-200.png         | Bin 0 -> 7700 bytes
 .../Assets/Square150x150Logo.scale-200.png    | Bin 0 -> 2937 bytes
 .../Assets/Square44x44Logo.scale-200.png      | Bin 0 -> 1647 bytes
 ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes
 VisualC-WinRT/TestDraw2/Assets/StoreLogo.png  | Bin 0 -> 1451 bytes
 .../Assets/Wide310x150Logo.scale-200.png      | Bin 0 -> 3204 bytes
 VisualC-WinRT/TestDraw2/Package.appxmanifest  |  49 +++
 VisualC-WinRT/TestDraw2/TestDraw2.vcxproj     | 336 ++++++++++++++++++
 .../TestDraw2/TestDraw2.vcxproj.filters       | 103 ++++++
 docs/README-winrt.md                          |  35 +-
 include/SDL3/SDL_main.h                       |  18 +-
 include/SDL3/SDL_main_impl.h                  |  64 +++-
 src/SDL_internal.h                            |   2 +-
 src/dynapi/SDL_dynapi.c                       |   2 +-
 src/main/winrt/SDL_winrt_main_NonXAML.cpp     |  55 ---
 test/main.cpp                                 |  11 +
 20 files changed, 634 insertions(+), 78 deletions(-)
 create mode 100644 VisualC-WinRT/TestDraw2/Assets/LockScreenLogo.scale-200.png
 create mode 100644 VisualC-WinRT/TestDraw2/Assets/SplashScreen.scale-200.png
 create mode 100644 VisualC-WinRT/TestDraw2/Assets/Square150x150Logo.scale-200.png
 create mode 100644 VisualC-WinRT/TestDraw2/Assets/Square44x44Logo.scale-200.png
 create mode 100644 VisualC-WinRT/TestDraw2/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
 create mode 100644 VisualC-WinRT/TestDraw2/Assets/StoreLogo.png
 create mode 100644 VisualC-WinRT/TestDraw2/Assets/Wide310x150Logo.scale-200.png
 create mode 100644 VisualC-WinRT/TestDraw2/Package.appxmanifest
 create mode 100644 VisualC-WinRT/TestDraw2/TestDraw2.vcxproj
 create mode 100644 VisualC-WinRT/TestDraw2/TestDraw2.vcxproj.filters
 delete mode 100644 src/main/winrt/SDL_winrt_main_NonXAML.cpp
 create mode 100644 test/main.cpp

diff --git a/VisualC-WinRT/SDL-UWP.sln b/VisualC-WinRT/SDL-UWP.sln
index 62f9f04172bb..bb6346c73a08 100644
--- a/VisualC-WinRT/SDL-UWP.sln
+++ b/VisualC-WinRT/SDL-UWP.sln
@@ -1,10 +1,12 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.33027.164
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL3-UWP", "SDL-UWP.vcxproj", "{89E9B32E-A86A-47C3-A948-D2B1622925CE}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestDraw2", "TestDraw2\TestDraw2.vcxproj", "{95943BBE-F378-4068-A3FD-DAE1B8309B6E}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|ARM = Debug|ARM
@@ -33,8 +35,35 @@ Global
 		{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
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|ARM.ActiveCfg = Debug|ARM
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|ARM.Build.0 = Debug|ARM
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|ARM.Deploy.0 = Debug|ARM
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|ARM64.Build.0 = Debug|ARM64
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|ARM64.Deploy.0 = Debug|ARM64
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|x64.ActiveCfg = Debug|x64
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|x64.Build.0 = Debug|x64
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|x64.Deploy.0 = Debug|x64
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|x86.ActiveCfg = Debug|Win32
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|x86.Build.0 = Debug|Win32
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Debug|x86.Deploy.0 = Debug|Win32
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|ARM.ActiveCfg = Release|ARM
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|ARM.Build.0 = Release|ARM
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|ARM.Deploy.0 = Release|ARM
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|ARM64.ActiveCfg = Release|ARM64
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|ARM64.Build.0 = Release|ARM64
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|ARM64.Deploy.0 = Release|ARM64
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|x64.ActiveCfg = Release|x64
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|x64.Build.0 = Release|x64
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|x64.Deploy.0 = Release|x64
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|x86.ActiveCfg = Release|Win32
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|x86.Build.0 = Release|Win32
+		{95943BBE-F378-4068-A3FD-DAE1B8309B6E}.Release|x86.Deploy.0 = Release|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {30680F51-7BB9-41D0-A0D6-BC44A1557D87}
+	EndGlobalSection
 EndGlobal
diff --git a/VisualC-WinRT/SDL-UWP.vcxproj b/VisualC-WinRT/SDL-UWP.vcxproj
index dd18fe91e1c8..09e22b53a1c4 100644
--- a/VisualC-WinRT/SDL-UWP.vcxproj
+++ b/VisualC-WinRT/SDL-UWP.vcxproj
@@ -62,6 +62,7 @@
     <ClInclude Include="..\include\SDL3\SDL_locale.h" />
     <ClInclude Include="..\include\SDL3\SDL_log.h" />
     <ClInclude Include="..\include\SDL3\SDL_main.h" />
+    <ClInclude Include="..\include\SDL3\SDL_main_impl.h" />
     <ClInclude Include="..\include\SDL3\SDL_misc.h" />
     <ClInclude Include="..\include\SDL3\SDL_mouse.h" />
     <ClInclude Include="..\include\SDL3\SDL_mutex.h" />
diff --git a/VisualC-WinRT/SDL-UWP.vcxproj.filters b/VisualC-WinRT/SDL-UWP.vcxproj.filters
index 6efea895e50f..65dd7e2f2ba2 100644
--- a/VisualC-WinRT/SDL-UWP.vcxproj.filters
+++ b/VisualC-WinRT/SDL-UWP.vcxproj.filters
@@ -822,6 +822,9 @@
     <ClInclude Include="..\src\joystick\controller_type.h">
       <Filter>Source Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\include\SDL3\SDL_main_impl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\src\joystick\windows\SDL_windows_gaming_input.c">
diff --git a/VisualC-WinRT/TestDraw2/Assets/LockScreenLogo.scale-200.png b/VisualC-WinRT/TestDraw2/Assets/LockScreenLogo.scale-200.png
new file mode 100644
index 0000000000000000000000000000000000000000..735f57adb5dfc01886d137b4e493d7e97cf13af3
GIT binary patch
literal 1430
zcmaJ>TTC2P7~aKltDttVHYH6u8Io4i*}3fO&d$gd*bA_<3j~&e7%8(eXJLfhS!M@!
zKrliY>>6yT4+Kr95$!DoD(Qn-5TP|{V_KS`k~E6(LGS@#`v$hQo&^^BKsw3HIsZBT
z_y6C2n`lK@apunKojRQ^(_P}Mgewt$(^BBKCTZ;*xa?J3wQ7~@S0lUvbcLeq1Bg4o
zH-bvQi|wt~L7q<c#Bs@6tJZpsaDp5#@^Kxb76?JKPM4Rjg?OPEsE7|VN<kaCGX4#U
zNTLm`F?$G4$N`$9k`4t_b(DF9j%I-s(fmV5p2k4~0ig1T7HA2EIn9Qy+vVUsevG5Y
zx{BItLpMm(dMXfytN_Gpv|s{3(g?#ENwbAvnU@d>$~a-gDFP!{&TQfc3fX*6=uHv*
zT&1&U(-)L%Xp^djI2?~eBF2cxC@YOP$+9d?P&h?lPy-9M2UT9fg5jKm1t$m#iWE{M
zIf%q9@;<puwV{ydMhJnB$FpTP7~V`2Oc}26A)GW4cpwmuYh636R)YU&Y^xpiwub;-
z3Bq!lBEWk1a}r>fyT?0<D?&D0xgx=$@GVYRXbXU#>UP>tcw-bLkz;s2LlKl2qeP0w
zECS7Ate+Awk|KQ+DOk;fl}Xsy4o^CY=pwq%QAAKKl628_yNPsK>?A>%D8fQG6IgdJ
ztnxttBz#NI_a@f<SS;sI0I$l5SC(56T~N^^t8%zW4j~T5dexEVYowqkN5Z-BGHpcd
z1d8+q5Q`K!fUM`4leXai7{C&K6Nxc?hQWB61{h0|4Cb>k7SU`WtrpsfZsNs9^0(2a
z@C3#YO3>k~w7?2hipBf{#b6`}Xw1hlG$yi?;1dDs7k~xDAw@jiI*+tc;t2L<e7iLm
zP}mwR5QOujz`+rgnOi!Y{({?C=+*8leK`I4)q-bwZ~S$=`Qx8za!;_&ojSySG^`y-
zUwxr;y18tmHR*DH-R#Zfn@dafJ#VG;#JXCA1?Fhi?=z+K#EYHSuZ6R;t9!2P-`Czg
zntSi!KX=pneo0;EVH+kX{Tbnm^ke?~Z}v~j1(%4Y2eEUe-ebObqI@uC5e<?ngPC8q
zexSeKJ6Lye>flg&bM)0!Y;0_@=w%`LW^8DsYpS#-bLOklX9r?Ei}TScw|4DbpW%+7
zFgAI)f51s}{y-eWb|vrU-Ya!GuYKP)J7z#*V_k^Xo>4!1Yqj*m)x&0L^tg3GJbVAJ
zJ-Pl$R=NAabouV=^z_t;^K*0AvFs!vYU>_<|I^#c?>>CR<(T?=%{;U=aI*SbZADLH
z&(f2wz_Y0??Tf|g;?|1Znw6}6U43<uVfr(7fnD33UXp<u^(nDoL&FaIfW9||8X7Y8
zWBR>Q#qNRwv1vp9uFn1)V#*4p&%$mP9x&15^OaBiDS(XppT|z^>;B{PLVEbS3IFYV
yGvCsSX<sgWK5pRdjuceaUA*+*;fQZyG$}(jP`_}c_gGYm|0&(BGUuqhq31shAo>*m

literal 0
HcmV?d00001

diff --git a/VisualC-WinRT/TestDraw2/Assets/SplashScreen.scale-200.png b/VisualC-WinRT/TestDraw2/Assets/SplashScreen.scale-200.png
new file mode 100644
index 0000000000000000000000000000000000000000..023e7f1feda78d5100569825acedfd213a0d84e9
GIT binary patch
literal 7700
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

literal 0
HcmV?d00001

diff --git a/VisualC-WinRT/TestDraw2/Assets/Square150x150Logo.scale-200.png b/VisualC-WinRT/TestDraw2/Assets/Square150x150Logo.scale-200.png
new file mode 100644
index 0000000000000000000000000000000000000000..af49fec1a5484db1d52a7f9b5ec90a27c7030186
GIT binary patch
literal 2937
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
bht0Iza^2ykEt4(epJ78uh5nDlX8(TxzDYwP

literal 0
HcmV?d00001

diff --git a/VisualC-WinRT/TestDraw2/Assets/Square44x44Logo.scale-200.png b/VisualC-WinRT/TestDraw2/Assets/Square44x44Logo.scale-200.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce342a2ec8a61291ba76c54604aea7e9d20af11b
GIT binary patch
literal 1647
zcmaJ?eM}Q)7(e+G1Q(|`V9JhTI2>MkceK4;p;PR&$Pi?ejk3YQ_3o`S&|W_dsOZ8#
zWPTt69g`t$ab`0cj-Y0yiBSOqmd)tG7G(}M5aP0_%&9TijB#&)I{zSE^4@#z^FF`l
z`8{8`o%wlL(UI|y2!cdsuVamHH~H86F!*-15em4)NqUpCQM5?aoC_eCf@lV4wvF2a
zjDQn1JBL69f&@2M3rvzJcfE!eZ8FZUBlFlC5RD)it33{mF9#B82AiyQE%w)`vlwa>
zv{<1sm&kSKK$&%2jSFn7$t&P%%6Ue>R=<X3cr?&}4M-g7u~pdJ8jlv6wyS~Pez6=w
zr&XkKEjB~Sl$($0L>EAnG8N7fqynWG8L3p!4801a;8{+n<rIMvj7FKJAt-eA!Js#n
zV9^*^!>liO(qd(j<j~0F)z#Iq>NJ_?+9W3#hLIDLoT6~3fx9=`CC-D}-AMrpEO7HK
zt3$GicGPc?GmDjy7K2P@La;e<bDtQtyJr&xQzrLt4ml|!<Tjf>u4!$zWCZ`ym{Z$b
zu-O6RM&K4JT|BIZB`E-gxqG%FzanI#+2FFmqHq<g$XD8cUCL&)7`%}QRzX8^7Mda`
zB~A$xhpTu6hcgyRz)6ZUQzWle5^6eNXD&RvRx$>XG7yxWB=w55RGOM)$xMb(>kSNR
z2w=1AZi%z=AmG~yea~XaXJR!v7vLn(RUnELfiB1|6D84ICOS}^Zo2AdN}<&*h}G_u
z{xZ!(%>tLT3J3<5XhWy-tg+6)0nmUUENLW8TWA{R6bgVd3X;anYFZ^IRis*_P-C-r
z;i>%1^eL3UI2-{w8nuFFcs0e~7J{O2k^~Ce%+Ly4U?|=!0LH=t6()xi<^I-rs+9sF
z*q{E-CxZbGPeu#a;XJwE;9S1?#R&uns>^0G3p`hEUF*v`M?@h%T%J%RChmD|EVydq
zmHWh*_=S%emRC*mhxaVLzT@>Z2SX0u9v*DIJ@WC^k<V?z``Q$(M}8`~@@9hcMtV<h
zde8Z&v6Hrv<iw6I|G5|6*`Tto7~DG5&b%0P`j40kroR1u$KAb_`tXQR)OGjNojrR;
zIr-Y;P|DPbNw=@$Rycaxb?Mm6+R_Q{<BFxhwGA1uSqc5x`>LVdlGV6LpK$KIrlJqc
zpJ921)+3JJdTx|<`G&kXpKkjGJv=76R`yYIQ{#c-`%+`#V(7}Q;&@6U8!Td1`d;?N
z_9mnI#?AA}4J!r)LN4!E-@H5eXauuB7TOawS>Y|{-P?NNx-lq+z1W-+y(;39P&&LP
zL{N<u_jdY@dYL+=<!7fm_;+?`-S_i4gNveMFA&McQ;PFSBL$~-w71=dIg=3{-96A2
z)LEa=cxwOqsS%!tyGy#;Z?M)!eaC#SI+BCVqg{P%kr~@ZAAA*5NZpCOdvZgJcet)L
z>80?&=C*qKmdA^moMZRuPcD!B<*mq$ch=0Cnlitw#txRWhb3%TQvPqjkC`F69G4b!
ze7z9MZ#+;_#l?H37UqUhDFb^l&s2{oM$3I0o^Q!yx;;V)QmCMo)Tb_ui|mit8MS?U
zm##6$sZZ1$@|s%?l@>4Z<*Q}sRBSKMhb4I{e5LdEhsHIHTe8Bod5c>6QtT>$XgUBz
z6MK`kO$=jmt@FqggOhJ5j~e@ygRbG;<{Vu)*+nn9aQeo0;$#j;|MS=S$&L?BeV25z
xs3B`@=#`5TF{^6(A1rvdY@|-RtQ|iS5{tyX+wH?;n8E)G$kykv-D^wh{{!TZT%7;_

literal 0
HcmV?d00001

diff --git a/VisualC-WinRT/TestDraw2/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/VisualC-WinRT/TestDraw2/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644
index 0000000000000000000000000000000000000000..f6c02ce97e0a802b85f6021e822c89f8bf57d5cd
GIT binary patch
literal 1255
zcmaJ>TWs4@7*5+{G#S+<G69{CW?TuiXeYkMv1xisQWlzol0`IV5A4`JZcXaTY?q{w
z&?qX=E<%VR9^fg07bdg|(uRb1SP@065)#_u(4;|M;B82}FnECDG%0(iX30M1Kj;7c
z|NCz~KVN!rD0Va!3WbL9C$eR{J{`P+2k`fodipQC4EwpNf6~_dI&@KJTC){I<W0DU
z$_Q$!XSUIJC^WEcRH}ZpSddlQOu#@V(J&p14u!@i8xB-!$R`xEXjp0T{x>&C!qC#>
zf>5N3P6jO*Cz>ug*(_DmW=)kea&m$gZ^+nyiF`;j%w@}y8)>p*SH}C`m?DXeieF2U
zyQHecc_L%Gh!7G<pwbLah*E+PlA<IYCs-^~bc$kWKufZ~$uvuJ9};_WHC--eXS=?z
zlqQ#a-;pV*Uau$WT*7u2DMpecie@R61y}=ktCkNN!16|V7P81wUBmGW+adysP_bA1
zG>Mt+hG06y;+|p4>m~}PjA}rKViGiEnn7G0ZO<>G|7q;2?NwGCM3s?eued6%hd$B+
z<J>*kQJ{#~$S=DFE(%=E+UkmlEI*%3llUf~8Ja9YU1Vui0IbGBkW_gHB%Rd&!!ioX
zs40O?i9I{};kle7GMvE7(rk`la=gTI)47=>%?q@^iL-nUo3}h4S}N-KHn8t5mVP8w
z&bSErwp+37<z5%eFWJ8BE!hr{$#kktj4l|KX4k#3piH|_XOU~XiL_bQHi=H2Wn&)>
zNJJ8?a|{r5Q3R0Z5s-LB1WHOwYC@7pCHWND#cL1cZ?{kJ368_*(UDWUDyb<}0y@o#
zfMF016iMWPCb6obAxT$JlB6(2DrlXDTB&!0`!m??4F(qWMhjVZo?JXQmz`1*58Z=&
zcDmB|S-E@j?BoFGix0flckqdS4jsPNzhfWyWIM98GxcLs89C(~dw%$_t;JjX-SD}E
zfiGV;{8Q%8r}w9x>EEigW81>`kvnU@pK)4+xk9@+bNj9L!AAZ@SZ@q|)&BmY3+HZx
zul~BeG4|}-;L%cHViQGQX?^zFfO0&#cHwel=d`lH9sJ-@Sl@n*(8J2>%Ac`IxyY?Q
z{=GhWvC#gu-~Ia7*n{=+;qM?Ul_wy1+u7ho;=`>EwP^g~R@{unBds`!#@}tluZQpS
zm)M~nYEifJWJGx?_6DcTy>#uh%>!H9=hb^(v`=m3F1{L>db=<5_tm+_&knAQ2EU$s
Mu9UqpbNZeC0BbUo^Z)<=

literal 0
HcmV?d00001

diff --git a/VisualC-WinRT/TestDraw2/Assets/StoreLogo.png b/VisualC-WinRT/TestDraw2/Assets/StoreLogo.png
new file mode 100644
index 0000000000000000000000000000000000000000..7385b56c0e4d3c6b0efe3324aa1194157d837826
GIT binary patch
literal 1451
zcmaJ>eN5D57_Z|bH;{0+1#mbl)eTU3{h)Wf7EZV?;HD@XL@{B`Ui%(2aMxQ~xdXSv
z5nzWi(<Qp0OO$NM7W~Q_8E#Xi$ik*$nyFjFERiL|C5FvR_m#Nm-UE*L2eC=}zR&wU
zzvuZqU+t~gP??tUObUV^Y2GTg53Y3lH73JvZdvRkT$bsc2E9%R=n+8$h(l8R0QCli
zCg1~t)c*1XP>LW)U2=Vc-cY@s7nPt{i0hc6!7xN4NNHI#EQl>YNBy8l4%x9gr_W-j
zEZMQmmTIy(>;lblRfh`dIyTgc9W5d!VP$L4(kKrN1c5G~(O_#x<D+(L#x4){@nZr*
zXH@hSJ2p$Ip}GcjDJnoMW-Bg|6oayynX*_}jx9oIC=;ZOph=wMcuO%)(&*fSL2s%Q
z;C=3jIbTq+W6ioA<_RJaiI^kBW<_lxD30R@k|t;xhZ?xn9@2#<9@17OEVzLts&ZJD
zl@J=YDEO7_x*dZ|XF~{vtE=Y?hqSpw!ITkEAxuzak_ZOlam{FJx)1zMV?k}LzC8>G
zAJCNTstD^5SeXFB+&$h=ToJP2H>xr$iqPs-#O*;4(!Fjw25-!gEb*)mU}=)J;Iu>w
zxK(5XoD0wrPSKQ~rbL^Cw6O_03*l*}i=ydbu7adJ6y;%@tjFeXIXT+ms30pmbOP%Q
zX}S;+LBh8Tea~TSkHzvX6$rYb)+<VDq6=!86<yJql`!gZ%~TyN*er)6C88C^%QPFc
z8>n&{kSbIqh|c7hmlxmwSiq5iVhU#iEQ<>a18|O^Sln-8t&+t`*{qBWo5M?w<Zrf5
z;R%c*oS?(o7?BfgG=~RBn#Cy!Fu0#%8C>FM(JuimAOb5!K#D}XbslM@#1ZVz_;!9U
zpfEpLAOz=0g@bd6Xj_ILi-x^!M}73h^o@}hM$1jflTs|Yuj9AL@A3<-?MV4!^4q`e
z)fO@A;{9K^?W?DbnesnPr6kK>$zaKo&;FhFd(GYFCIU^T+OIMb%Tqo+P%oq(IdX7S
zf6+HLO?7o0m+p>~Tp5UrXWh!UH!wZ5kv!E`_w)PTpI(#Iw{AS`gH4^b(bm^ZCq^FZ
zY9DD7bH}rq9mg88+KgA$Zp!iWncuU2n1AuIa@=sWvUR-s`Qb{R*kk(SPU^`$6BXz8
zn#7yaFOIK%qGxyi`dYtm#&qqox0$h=pNi#u=M8zUG@bpiZ=3sT=1}Trr}39cC)H|v
zbL?W)=&s4zrh)7>L(|cc%$1#!zfL?HjpeP%T+x_a+jZ16b^iKOHxFEX$7d|8${H-*
zIrOJ5w&i$>*D>AKaIoYg`;{L@jM((Kt?$N$5OnuPqVvq**Nm}(f0wwOF%iX_Pba;V
z;m@wxX&NcV3?<1+u?A{y_DIj7#m3Af1rCE)o`D&Y3}0%7E;iX1yMDiS)sh0wKi!36
zL!Wmq?P^Ku&rK~HJd97KkLTRl>ScGFYZNlYytWnhmuu|)L&ND8_PmkayQb{HOY640
bno1(wj@u8DCVuFR|31B*4ek@pZJqxCDDe1x

literal 0
HcmV?d00001

diff --git a/VisualC-WinRT/TestDraw2/Assets/Wide310x150Logo.scale-200.png b/VisualC-WinRT/TestDraw2/Assets/Wide310x150Logo.scale-200.png
new file mode 100644
index 0000000000000000000000000000000000000000..288995b397fdbef1fb7e85afd71445d5de1952c5
GIT binary patch
literal 3204
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
F{{^ZoKyCm4

literal 0
HcmV?d00001

diff --git a/VisualC-WinRT/TestDraw2/Package.appxmanifest b/VisualC-WinRT/TestDraw2/Package.appxmanifest
new file mode 100644
index 000000000000..f04c9ffc4d33
--- /dev/null
+++ b/VisualC-WinRT/TestDraw2/Package.appxmanifest
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<Package
+  xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
+  xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
+  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
+  IgnorableNamespaces="uap mp">
+
+  <Identity
+    Name="a430d85b-5cf1-4705-9fe1-7da520f91d4b"
+    Publisher="CN=Daniel"
+    Version="1.0.0.0" />
+
+  <mp:PhoneIdentity PhoneProductId="a430d85b-5cf1-4705-9fe1-7da520f91d4b" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
+
+  <Properties>
+    <DisplayName>TestDraw2</DisplayName>
+    <PublisherDisplayName>Daniel</PublisherDisplayName>
+    <Logo>Assets\StoreLogo.png</Logo>
+  </Properties>
+
+  <Dependencies>
+    <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
+  </Dependencies>
+
+  <Resources>
+    <Resource Language="x-generate"/>
+  </Resources>
+
+  <Applications>
+    <Application Id="App"
+      Executable="$targetnametoken$.exe"
+      EntryPoint="TestDraw2.App">
+      <uap:VisualElements
+        DisplayName="TestDraw2"
+        Square150x150Logo="Assets\Square150x150Logo.png"
+        Square44x44Logo="Assets\Square44x44Logo.png"
+        Description="TestDraw2"
+        BackgroundColor="transparent">
+        <uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>
+        <uap:SplashScreen Image="Assets\SplashScreen.png" />
+      </uap:VisualElements>
+    </Application>
+  </Applications>
+
+  <Capabilities>
+    <Capability Name="internetClient" />
+  </Capabilities>
+</Package>
\ No newline at end of file
diff --git a/VisualC-WinRT/TestDraw2/TestDraw2.vcxproj b/VisualC-WinRT/TestDraw2/TestDraw2.vcxproj
new file mode 100644
index 000000000000..9de6beae42fe
--- /dev/null
+++ b/VisualC-WinRT/TestDraw2/TestDraw2.vcxproj
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|ARM">
+      <Configuration>Debug</Configuration>
+      <Platform>ARM</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|ARM">
+      <Configuration>Release</Configuration>
+      <Platform>ARM</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|ARM64">
+      <Configuration>Debug</Configuration>
+      <Platform>ARM64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|ARM64">
+      <Configuration>Release</Configuration>
+      <Platform>ARM64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{95943bbe-f378-4068-a3fd-dae1b8309b6e}</ProjectGuid>
+    <Keyword>DirectXApp</Keyword>
+    <RootNamespace>TestDraw2</RootNamespace>
+    <DefaultLanguage>en-US</DefaultLanguage>
+    <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
+    <AppContainerApplication>true</AppContainerApplication>
+    <ApplicationType>Windows Store</ApplicationType>
+    <WindowsTargetPlatformVersion>10.0.19041.0</WindowsTargetPlatformVersion>
+    <WindowsTargetPlatformMinVersion>10.0.17763.0</WindowsTargetPlatformMinVersion>
+    <ApplicationTypeRevision>10.0</ApplicationTypeRevision>
+    <AppxPackageSigningEnabled>false</AppxPackageSigningEnabled>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Con

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