WinRT: Move Windows::Foundation::Initialize to SDL2.dll, from SDL_main.

This allows C# UWP applications to use SDL2's SDL_WinRTRunApp function.

Kudos to Ethan Lee (flibitijibibo@flibitijibibo.com) for the patch.  Thanks!
This commit is contained in:
David Ludwig 2017-10-24 13:21:11 -04:00
parent 6d23ea4bf0
commit 0e032d5860
2 changed files with 6 additions and 6 deletions

View File

@ -24,6 +24,8 @@
#include "SDL_winrtapp_direct3d.h" #include "SDL_winrtapp_direct3d.h"
#include "SDL_winrtapp_xaml.h" #include "SDL_winrtapp_xaml.h"
#include <wrl.h>
int (*WINRT_SDLAppEntryPoint)(int, char **) = NULL; int (*WINRT_SDLAppEntryPoint)(int, char **) = NULL;
extern "C" DECLSPEC int extern "C" DECLSPEC int
@ -32,6 +34,9 @@ SDL_WinRTRunApp(int (*mainFunction)(int, char **), void * xamlBackgroundPanel)
if (xamlBackgroundPanel) { if (xamlBackgroundPanel) {
return SDL_WinRTInitXAMLApp(mainFunction, xamlBackgroundPanel); return SDL_WinRTInitXAMLApp(mainFunction, xamlBackgroundPanel);
} else { } else {
if (FAILED(Windows::Foundation::Initialize(RO_INIT_MULTITHREADED))) {
return 1;
}
return SDL_WinRTInitNonXAMLApp(mainFunction); return SDL_WinRTInitNonXAMLApp(mainFunction);
} }
} }

View File

@ -50,10 +50,5 @@
int CALLBACK WinMain(HINSTANCE, HINSTANCE, LPSTR, int) int CALLBACK WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{ {
if (FAILED(Windows::Foundation::Initialize(RO_INIT_MULTITHREADED))) { return SDL_WinRTRunApp(SDL_main, NULL);
return 1;
}
SDL_WinRTRunApp(SDL_main, NULL);
return 0;
} }