From bfdb737cf945f9ae992b088d8baa250bb22bd7c1 Mon Sep 17 00:00:00 2001 From: = Date: Mon, 11 Mar 2024 15:03:08 -0400 Subject: [PATCH] Add staging uwp build files --- soh-uwp/Package.appxmanifest | 58 ++++++++++++++++++++++ soh-uwp/main.cpp | 94 ++++++++++++++++++++++++++++++++++++ 2 files changed, 152 insertions(+) create mode 100644 soh-uwp/Package.appxmanifest create mode 100644 soh-uwp/main.cpp diff --git a/soh-uwp/Package.appxmanifest b/soh-uwp/Package.appxmanifest new file mode 100644 index 00000000..2dd6e250 --- /dev/null +++ b/soh-uwp/Package.appxmanifest @@ -0,0 +1,58 @@ + + + + + + + + + + soh_uwp + danwo + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh-uwp/main.cpp b/soh-uwp/main.cpp new file mode 100644 index 00000000..b60468da --- /dev/null +++ b/soh-uwp/main.cpp @@ -0,0 +1,94 @@ +/* + SDL_winrt_main_NonXAML.cpp, placed in the public domain by David Ludwig 3/13/14 +*/ + +/* At least one file in any SDL/WinRT app appears to require compilation + with C++/CX, otherwise a Windows Metadata file won't get created, and + an APPX0702 build error can appear shortly after linking. + + The following set of preprocessor code forces this file to be compiled + as C++/CX, which appears to cause Visual C++ 2012's build tools to + create this .winmd file, and will help allow builds of SDL/WinRT apps + to proceed without error. + + If other files in an app's project enable C++/CX compilation, then it might + be possible for SDL_winrt_main_NonXAML.cpp to be compiled without /ZW, + for Visual C++'s build tools to create a winmd file, and for the app to + build without APPX0702 errors. In this case, if + SDL_WINRT_METADATA_FILE_AVAILABLE is defined as a C/C++ macro, then + the #error (to force C++/CX compilation) will be disabled. + + Please note that /ZW can be specified on a file-by-file basis. To do this, + right click on the file in Visual C++, click Properties, then change the + setting through the dialog that comes up. +*/ + +/* Prevent MSVC++ from warning about threading models when defining our + 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 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace winrt::Windows; +using namespace winrt::Windows::ApplicationModel::Core; +using namespace winrt::Windows::Graphics::Display::Core; +using namespace winrt::Windows::Foundation::Numerics; +using namespace winrt::Windows::UI; +using namespace winrt::Windows::UI::Core; +using namespace winrt::Windows::UI::Composition; +using namespace winrt::Windows::Storage; + +#include "../libultraship/src/graphic/Fast3D/wininfo.h" + +#include "SDL2/SDL.h" +void* WinInfo::getCurrentWindow() { + void* ptr = nullptr; + while (ptr == nullptr) { + ptr = winrt::get_abi(CoreWindow::GetForCurrentThread()); + Sleep(10); + } + + return ptr; +} + +std::string WinInfo::getSavePath() { + return winrt::to_string(ApplicationData::Current().LocalFolder().Path()); +} + +int CALLBACK WinMain(HINSTANCE, HINSTANCE, LPSTR, int) +{ + char* args[] = { + (char*) "example", + NULL + }; + + + winrt::init_apartment(); + return SDL_WinRTRunApp(SDL_main, args); + winrt::uninit_apartment(); +} \ No newline at end of file