mirror of https://github.com/encounter/SDL.git
WinRT: made SDL_winrt_main.cpp not have to be compiled as C++/CX (via the /ZW compiler flag)
This file can still be compiled as C++/CX, however that is now optional/not-required.
This commit is contained in:
parent
79e82936cd
commit
c72a4fa311
|
@ -1,14 +1,36 @@
|
||||||
|
|
||||||
//#include "pch.h"
|
#include <wrl.h>
|
||||||
|
|
||||||
// The app's C-style main will be passed into SDL.dll as a function
|
/* The app's C-style main will be passed into SDL.dll as a function
|
||||||
// pointer, and called at the appropriate time.
|
pointer, and called at the appropriate time.
|
||||||
|
*/
|
||||||
typedef int (*SDLmain_MainFunction)(int, char **);
|
typedef int (*SDLmain_MainFunction)(int, char **);
|
||||||
extern __declspec(dllimport) int SDL_WinRT_RunApplication(SDLmain_MainFunction mainFunction);
|
extern __declspec(dllimport) int SDL_WinRT_RunApplication(SDLmain_MainFunction mainFunction);
|
||||||
extern "C" int SDL_main(int, char **);
|
extern "C" int SDL_main(int, char **);
|
||||||
|
|
||||||
[Platform::MTAThread]
|
/* Prevent MSVC++ from warning about threading models when defining our
|
||||||
int main(Platform::Array<Platform::String^>^)
|
custom WinMain. The threading model will instead be set via a direct
|
||||||
|
call to Windows::Foundation::Initialize (rather than via an attributed
|
||||||
|
function).
|
||||||
|
|
||||||
|
To note, this warning (C4447) does not seem to come up unless this file
|
||||||
|
is compiled with C++/CX enabled (via the /ZW compiler flag).
|
||||||
|
*/
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning(disable:4447)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Make sure the function to initialize the Windows Runtime gets linked in. */
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma comment(lib, "runtimeobject.lib")
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int CALLBACK WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
|
||||||
{
|
{
|
||||||
return SDL_WinRT_RunApplication(SDL_main);
|
if (FAILED(Windows::Foundation::Initialize(RO_INIT_MULTITHREADED))) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_WinRT_RunApplication(SDL_main);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue