Prechádzať zdrojové kódy

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!
David Ludwig 7 rokov pred
rodič
commit
0e032d5860

+ 5 - 0
src/core/winrt/SDL_winrtapp_common.cpp

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

+ 1 - 6
src/main/winrt/SDL_winrt_main_NonXAML.cpp

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