Reviewed UWP project config

This commit is contained in:
Ray 2021-03-13 13:08:05 +01:00
parent fe3256be9f
commit 75038baf71
3 changed files with 155 additions and 162 deletions

View file

@ -29,6 +29,20 @@ using namespace raylibUWP;
#define MAX_GAMEPAD_BUTTONS 32 // Max bumber of buttons supported (per gamepad) #define MAX_GAMEPAD_BUTTONS 32 // Max bumber of buttons supported (per gamepad)
#define MAX_GAMEPAD_AXIS 8 // Max number of axis supported (per gamepad) #define MAX_GAMEPAD_AXIS 8 // Max number of axis supported (per gamepad)
// Gamepad bindings struct
struct GamepadBinding
{
Gamepad^ Gamepad = nullptr;
bool Ready = false;
};
// Global variables
static int posX = 100;
static int posY = 100;
static int gTime = 0;
static bool mouseLocked = false;
static GamepadBinding gGamepadBindings[MAX_GAMEPADS];
// The main function creates an IFrameworkViewSource for our app, and runs the app // The main function creates an IFrameworkViewSource for our app, and runs the app
[Platform::MTAThread] [Platform::MTAThread]
int main(Platform::Array<Platform::String^>^) int main(Platform::Array<Platform::String^>^)
@ -48,7 +62,7 @@ App::App()
void App::Initialize(Windows::ApplicationModel::Core::CoreApplicationView^ applicationView) void App::Initialize(Windows::ApplicationModel::Core::CoreApplicationView^ applicationView)
{ {
// Register event handlers for app lifecycle. This example includes Activated, so that we // Register event handlers for app lifecycle. This example includes Activated, so that we
// can make the CoreWindow active and start rendering on the window. // can make the CoreWindow active and start rendering on the window.
applicationView->Activated += ref new TypedEventHandler<CoreApplicationView^, IActivatedEventArgs^>(this, &App::OnActivated); applicationView->Activated += ref new TypedEventHandler<CoreApplicationView^, IActivatedEventArgs^>(this, &App::OnActivated);
// Logic for other event handlers could go here. // Logic for other event handlers could go here.
@ -92,55 +106,38 @@ void App::SetWindow(Windows::UI::Core::CoreWindow^ window)
void App::Load(Platform::String ^entryPoint) {} // Ignored for this example void App::Load(Platform::String ^entryPoint) {} // Ignored for this example
static bool mouseLocked = false;
void App::Run() void App::Run()
{ {
// Set up our UWP implementation // Set up our UWP implementation
UWPSetQueryTimeFunc([]() UWPSetQueryTimeFunc([]() {
{ static auto timeStart = std::chrono::high_resolution_clock::now();
static auto timeStart = std::chrono::high_resolution_clock::now(); std::chrono::duration<double> time_span = std::chrono::duration_cast<std::chrono::duration<double>>(std::chrono::high_resolution_clock::now() - timeStart);
std::chrono::duration<double> time_span = std::chrono::duration_cast<std::chrono::duration<double>>(std::chrono::high_resolution_clock::now() - timeStart); return time_span.count(); });
return time_span.count();
});
UWPSetSleepFunc([](double seconds) { std::this_thread::sleep_for(std::chrono::duration<double>(seconds)); }); UWPSetSleepFunc([](double seconds) { std::this_thread::sleep_for(std::chrono::duration<double>(seconds)); });
UWPSetDisplaySizeFunc([](int* width, int* height) UWPSetDisplaySizeFunc([](int* width, int* height) {
{ // Get display dimensions
// Get display dimensions DisplayInformation^ dInfo = DisplayInformation::GetForCurrentView();
DisplayInformation^ dInfo = DisplayInformation::GetForCurrentView(); *width = dInfo->ScreenWidthInRawPixels;
*width = dInfo->ScreenWidthInRawPixels; *height = dInfo->ScreenHeightInRawPixels; });
*height = dInfo->ScreenHeightInRawPixels;
});
UWPSetMouseHideFunc([]() UWPSetMouseHideFunc([]() { CoreWindow::GetForCurrentThread()->PointerCursor = nullptr; });
{
CoreWindow::GetForCurrentThread()->PointerCursor = nullptr;
});
UWPSetMouseShowFunc([]() UWPSetMouseShowFunc([]() { CoreWindow::GetForCurrentThread()->PointerCursor = ref new CoreCursor(CoreCursorType::Arrow, 0); });
{
CoreWindow::GetForCurrentThread()->PointerCursor = ref new CoreCursor(CoreCursorType::Arrow, 0);
});
UWPSetMouseLockFunc([]() UWPSetMouseLockFunc([]() {
{ CoreWindow::GetForCurrentThread()->PointerCursor = nullptr;
CoreWindow::GetForCurrentThread()->PointerCursor = nullptr; mouseLocked = true; });
mouseLocked = true;
});
UWPSetMouseUnlockFunc([]() UWPSetMouseUnlockFunc([]() {
{ CoreWindow::GetForCurrentThread()->PointerCursor = ref new CoreCursor(CoreCursorType::Arrow, 0);
CoreWindow::GetForCurrentThread()->PointerCursor = ref new CoreCursor(CoreCursorType::Arrow, 0); mouseLocked = false; });
mouseLocked = false;
});
UWPSetMouseSetPosFunc([](int x, int y) UWPSetMouseSetPosFunc([](int x, int y) {
{ CoreWindow^ window = CoreWindow::GetForCurrentThread();
CoreWindow^ window = CoreWindow::GetForCurrentThread(); Point mousePosScreen = Point(x + window->Bounds.X, y + window->Bounds.Y);
Point mousePosScreen = Point(x + window->Bounds.X, y + window->Bounds.Y); window->PointerPosition = mousePosScreen; });
window->PointerPosition = mousePosScreen;
});
// Set custom output handle // Set custom output handle
SetTraceLogCallback([](int logType, const char* text, va_list args) SetTraceLogCallback([](int logType, const char* text, va_list args)
@ -165,7 +162,7 @@ void App::Run()
}); });
// Create window // Create window
InitWindow(640, 480, "raylib game example"); InitWindow(800, 450, "raylib UWP - Basic example");
// Run game loop // Run game loop
while (!WindowShouldClose() && !mSuspended) while (!WindowShouldClose() && !mSuspended)
@ -175,8 +172,13 @@ void App::Run()
PreProcessInputs(); PreProcessInputs();
GameLoop(); GameLoop();
PostProcessInputs(); PostProcessInputs();
CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessAllIfPresent); CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessAllIfPresent);
} else CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessOneAndAllPending); }
else
{
CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessOneAndAllPending);
}
} }
CloseWindow(); CloseWindow();
@ -187,10 +189,6 @@ void App::Uninitialize()
// Do any UWP cleanup here. // Do any UWP cleanup here.
} }
static int posX = 100;
static int posY = 100;
static int gTime = 0;
// This method is called every frame // This method is called every frame
void App::GameLoop() void App::GameLoop()
{ {
@ -242,14 +240,6 @@ void App::GameLoop()
//---------------------------------------------------------------------------------- //----------------------------------------------------------------------------------
} }
struct GamepadBinding
{
Gamepad^ Gamepad = nullptr;
bool Ready = false;
};
static GamepadBinding gGamepadBindings[MAX_GAMEPADS];
void App::PreProcessInputs() void App::PreProcessInputs()
{ {
// Here, we will see if we have bound gamepads. If we do we check they are still present. If they aren't present we free the binding. // Here, we will see if we have bound gamepads. If we do we check they are still present. If they aren't present we free the binding.
@ -467,86 +457,86 @@ int App::GetRaylibKey(Windows::System::VirtualKey kVey)
int actualKey = -1; int actualKey = -1;
switch (kVey) switch (kVey)
{ {
case VK::Back: actualKey = KEY_BACKSPACE; break; case VK::Back: actualKey = KEY_BACKSPACE; break;
case VK::Space: actualKey = KEY_SPACE; break; case VK::Space: actualKey = KEY_SPACE; break;
case VK::Escape: actualKey = KEY_ESCAPE; break; case VK::Escape: actualKey = KEY_ESCAPE; break;
case VK::Enter: actualKey = KEY_ENTER; break; case VK::Enter: actualKey = KEY_ENTER; break;
case VK::Delete: actualKey = KEY_DELETE; break; case VK::Delete: actualKey = KEY_DELETE; break;
case VK::Right: actualKey = KEY_RIGHT; break; case VK::Right: actualKey = KEY_RIGHT; break;
case VK::Left: actualKey = KEY_LEFT; break; case VK::Left: actualKey = KEY_LEFT; break;
case VK::Down: actualKey = KEY_DOWN; break; case VK::Down: actualKey = KEY_DOWN; break;
case VK::Up: actualKey = KEY_UP; break; case VK::Up: actualKey = KEY_UP; break;
case VK::F1: actualKey = KEY_F1; break; case VK::F1: actualKey = KEY_F1; break;
case VK::F2: actualKey = KEY_F2; break; case VK::F2: actualKey = KEY_F2; break;
case VK::F3: actualKey = KEY_F3; break; case VK::F3: actualKey = KEY_F3; break;
case VK::F4: actualKey = KEY_F4; break; case VK::F4: actualKey = KEY_F4; break;
case VK::F5: actualKey = KEY_F5; break; case VK::F5: actualKey = KEY_F5; break;
case VK::F6: actualKey = KEY_F6; break; case VK::F6: actualKey = KEY_F6; break;
case VK::F7: actualKey = KEY_F7; break; case VK::F7: actualKey = KEY_F7; break;
case VK::F8: actualKey = KEY_F8; break; case VK::F8: actualKey = KEY_F8; break;
case VK::F9: actualKey = KEY_F9; break; case VK::F9: actualKey = KEY_F9; break;
case VK::F10: actualKey = KEY_F10; break; case VK::F10: actualKey = KEY_F10; break;
case VK::F11: actualKey = KEY_F11; break; case VK::F11: actualKey = KEY_F11; break;
case VK::F12: actualKey = KEY_F12; break; case VK::F12: actualKey = KEY_F12; break;
case VK::LeftShift: actualKey = KEY_LEFT_SHIFT; break; case VK::LeftShift: actualKey = KEY_LEFT_SHIFT; break;
case VK::LeftControl: actualKey = KEY_LEFT_CONTROL; break; case VK::LeftControl: actualKey = KEY_LEFT_CONTROL; break;
case VK::LeftMenu: actualKey = KEY_LEFT_ALT; break; case VK::LeftMenu: actualKey = KEY_LEFT_ALT; break;
case VK::RightShift: actualKey = KEY_RIGHT_SHIFT; break; case VK::RightShift: actualKey = KEY_RIGHT_SHIFT; break;
case VK::RightControl: actualKey = KEY_RIGHT_CONTROL; break; case VK::RightControl: actualKey = KEY_RIGHT_CONTROL; break;
case VK::RightMenu: actualKey = KEY_RIGHT_ALT; break; case VK::RightMenu: actualKey = KEY_RIGHT_ALT; break;
case VK::Number0: actualKey = KEY_ZERO; break; case VK::Number0: actualKey = KEY_ZERO; break;
case VK::Number1: actualKey = KEY_ONE; break; case VK::Number1: actualKey = KEY_ONE; break;
case VK::Number2: actualKey = KEY_TWO; break; case VK::Number2: actualKey = KEY_TWO; break;
case VK::Number3: actualKey = KEY_THREE; break; case VK::Number3: actualKey = KEY_THREE; break;
case VK::Number4: actualKey = KEY_FOUR; break; case VK::Number4: actualKey = KEY_FOUR; break;
case VK::Number5: actualKey = KEY_FIVE; break; case VK::Number5: actualKey = KEY_FIVE; break;
case VK::Number6: actualKey = KEY_SIX; break; case VK::Number6: actualKey = KEY_SIX; break;
case VK::Number7: actualKey = KEY_SEVEN; break; case VK::Number7: actualKey = KEY_SEVEN; break;
case VK::Number8: actualKey = KEY_EIGHT; break; case VK::Number8: actualKey = KEY_EIGHT; break;
case VK::Number9: actualKey = KEY_NINE; break; case VK::Number9: actualKey = KEY_NINE; break;
case VK::NumberPad0: actualKey = KEY_KP_0; break; case VK::NumberPad0: actualKey = KEY_KP_0; break;
case VK::NumberPad1: actualKey = KEY_KP_1; break; case VK::NumberPad1: actualKey = KEY_KP_1; break;
case VK::NumberPad2: actualKey = KEY_KP_2; break; case VK::NumberPad2: actualKey = KEY_KP_2; break;
case VK::NumberPad3: actualKey = KEY_KP_3; break; case VK::NumberPad3: actualKey = KEY_KP_3; break;
case VK::NumberPad4: actualKey = KEY_KP_4; break; case VK::NumberPad4: actualKey = KEY_KP_4; break;
case VK::NumberPad5: actualKey = KEY_KP_5; break; case VK::NumberPad5: actualKey = KEY_KP_5; break;
case VK::NumberPad6: actualKey = KEY_KP_6; break; case VK::NumberPad6: actualKey = KEY_KP_6; break;
case VK::NumberPad7: actualKey = KEY_KP_7; break; case VK::NumberPad7: actualKey = KEY_KP_7; break;
case VK::NumberPad8: actualKey = KEY_KP_8; break; case VK::NumberPad8: actualKey = KEY_KP_8; break;
case VK::NumberPad9: actualKey = KEY_KP_9; break; case VK::NumberPad9: actualKey = KEY_KP_9; break;
case VK::Decimal: actualKey = KEY_KP_DECIMAL; break; case VK::Decimal: actualKey = KEY_KP_DECIMAL; break;
case VK::Divide: actualKey = KEY_KP_DIVIDE; break; case VK::Divide: actualKey = KEY_KP_DIVIDE; break;
case VK::Multiply: actualKey = KEY_KP_MULTIPLY; break; case VK::Multiply: actualKey = KEY_KP_MULTIPLY; break;
case VK::Subtract: actualKey = KEY_KP_SUBTRACT; break; case VK::Subtract: actualKey = KEY_KP_SUBTRACT; break;
case VK::Add: actualKey = KEY_KP_ADD; break; case VK::Add: actualKey = KEY_KP_ADD; break;
// UWP Doesn't have a specific keypad enter or equal... // UWP Doesn't have a specific keypad enter or equal...
case VK::A: actualKey = KEY_A; break; case VK::A: actualKey = KEY_A; break;
case VK::B: actualKey = KEY_B; break; case VK::B: actualKey = KEY_B; break;
case VK::C: actualKey = KEY_C; break; case VK::C: actualKey = KEY_C; break;
case VK::D: actualKey = KEY_D; break; case VK::D: actualKey = KEY_D; break;
case VK::E: actualKey = KEY_E; break; case VK::E: actualKey = KEY_E; break;
case VK::F: actualKey = KEY_F; break; case VK::F: actualKey = KEY_F; break;
case VK::G: actualKey = KEY_G; break; case VK::G: actualKey = KEY_G; break;
case VK::H: actualKey = KEY_H; break; case VK::H: actualKey = KEY_H; break;
case VK::I: actualKey = KEY_I; break; case VK::I: actualKey = KEY_I; break;
case VK::J: actualKey = KEY_J; break; case VK::J: actualKey = KEY_J; break;
case VK::K: actualKey = KEY_K; break; case VK::K: actualKey = KEY_K; break;
case VK::L: actualKey = KEY_L; break; case VK::L: actualKey = KEY_L; break;
case VK::M: actualKey = KEY_M; break; case VK::M: actualKey = KEY_M; break;
case VK::N: actualKey = KEY_N; break; case VK::N: actualKey = KEY_N; break;
case VK::O: actualKey = KEY_O; break; case VK::O: actualKey = KEY_O; break;
case VK::P: actualKey = KEY_P; break; case VK::P: actualKey = KEY_P; break;
case VK::Q: actualKey = KEY_Q; break; case VK::Q: actualKey = KEY_Q; break;
case VK::R: actualKey = KEY_R; break; case VK::R: actualKey = KEY_R; break;
case VK::S: actualKey = KEY_S; break; case VK::S: actualKey = KEY_S; break;
case VK::T: actualKey = KEY_T; break; case VK::T: actualKey = KEY_T; break;
case VK::U: actualKey = KEY_U; break; case VK::U: actualKey = KEY_U; break;
case VK::V: actualKey = KEY_V; break; case VK::V: actualKey = KEY_V; break;
case VK::W: actualKey = KEY_W; break; case VK::W: actualKey = KEY_W; break;
case VK::X: actualKey = KEY_X; break; case VK::X: actualKey = KEY_X; break;
case VK::Y: actualKey = KEY_Y; break; case VK::Y: actualKey = KEY_Y; break;
case VK::Z: actualKey = KEY_Z; break; case VK::Z: actualKey = KEY_Z; break;
// I don't think we can have any more // I don't think we can have any more
} }
return actualKey; return actualKey;
} }
@ -555,17 +545,14 @@ void App::OnKeyDown(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::Ke
{ {
auto k = GetRaylibKey(args->VirtualKey); auto k = GetRaylibKey(args->VirtualKey);
auto controlState = (sender->GetKeyState(Windows::System::VirtualKey::Control) & Windows::UI::Core::CoreVirtualKeyStates::Down) == Windows::UI::Core::CoreVirtualKeyStates::Down; auto controlState = (sender->GetKeyState(Windows::System::VirtualKey::Control) & Windows::UI::Core::CoreVirtualKeyStates::Down) == Windows::UI::Core::CoreVirtualKeyStates::Down;
if (k != -1) { if (k != -1) UWPKeyDownEvent(k, true, controlState);
UWPKeyDownEvent(k, true, controlState);
}
args->Handled = true; args->Handled = true;
} }
void App::OnKeyUp(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::KeyEventArgs^ args) void App::OnKeyUp(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::KeyEventArgs^ args)
{ {
auto k = GetRaylibKey(args->VirtualKey); auto k = GetRaylibKey(args->VirtualKey);
if (k != -1) if (k != -1) UWPKeyDownEvent(k, false, false);
UWPKeyDownEvent(k, false, false);
args->Handled = true; args->Handled = true;
} }

View file

@ -61,28 +61,28 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<IncludePath>$(IncludePath)</IncludePath> <IncludePath>$(IncludePath)</IncludePath>
<LibraryPath>$(LibraryPath)</LibraryPath> <LibraryPath>$(LibraryPath)</LibraryPath>
<OutDir>$(SolutionDir)\bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)\Build\$(ProjectName)\bin\$(Configuration)\$(Platform)</OutDir>
<IntDir>$(SolutionDir)\obj\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)\Build\$(ProjectName)\obj\$(Configuration)\$(Platform)</IntDir>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(SolutionDir)\bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)\Build\$(ProjectName)\bin\$(Configuration)\$(Platform)</OutDir>
<IntDir>$(SolutionDir)\obj\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)\Build\$(ProjectName)\obj\$(Configuration)\$(Platform)</IntDir>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir)\bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)\Build\$(ProjectName)\bin\$(Configuration)\$(Platform)</OutDir>
<IntDir>$(SolutionDir)\obj\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)\Build\$(ProjectName)\obj\$(Configuration)\$(Platform)</IntDir>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)\bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)\Build\$(ProjectName)\bin\$(Configuration)\$(Platform)</OutDir>
<IntDir>$(SolutionDir)\obj\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)\Build\$(ProjectName)\obj\$(Configuration)\$(Platform)</IntDir>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)\bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)\Build\$(ProjectName)\bin\$(Configuration)\$(Platform)</OutDir>
<IntDir>$(SolutionDir)\obj\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)\Build\$(ProjectName)\obj\$(Configuration)\$(Platform)</IntDir>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<OutDir>$(SolutionDir)\bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)\Build\$(ProjectName)\bin\$(Configuration)\$(Platform)</OutDir>
<IntDir>$(SolutionDir)\obj\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)\Build\$(ProjectName)\obj\$(Configuration)\$(Platform)</IntDir>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Platform)'=='ARM'"> <ItemDefinitionGroup Condition="'$(Platform)'=='ARM'">
<Link> <Link>
@ -110,6 +110,9 @@
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
<DisableSpecificWarnings>4453;28204</DisableSpecificWarnings> <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
<PreprocessorDefinitions>PLATFORM_UWP;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>PLATFORM_UWP;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">MultiThreadedDebugDLL</RuntimeLibrary>
<RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MultiThreadedDebugDLL</RuntimeLibrary>
<RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">MultiThreadedDebugDLL</RuntimeLibrary>
</ClCompile> </ClCompile>
<ProjectReference> <ProjectReference>
<LinkLibraryDependencies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkLibraryDependencies> <LinkLibraryDependencies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkLibraryDependencies>
@ -125,6 +128,9 @@
<PreprocessorDefinitions>PLATFORM_UWP;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>PLATFORM_UWP;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Default</CompileAs> <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Default</CompileAs>
<OmitDefaultLibName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</OmitDefaultLibName> <OmitDefaultLibName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</OmitDefaultLibName>
<RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">MultiThreadedDLL</RuntimeLibrary>
<RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MultiThreadedDLL</RuntimeLibrary>
<RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MultiThreadedDLL</RuntimeLibrary>
</ClCompile> </ClCompile>
<Link> <Link>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">/NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">/NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>

View file

@ -129,33 +129,33 @@
<PropertyGroup /> <PropertyGroup />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<GenerateManifest>false</GenerateManifest> <GenerateManifest>false</GenerateManifest>
<OutDir>$(SolutionDir)\bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)\Build\$(ProjectName)\bin\$(Configuration)\$(Platform)</OutDir>
<IntDir>$(SolutionDir)\obj\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)\Build\$(ProjectName)\obj\$(Configuration)\$(Platform)</IntDir>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<GenerateManifest>false</GenerateManifest> <GenerateManifest>false</GenerateManifest>
<OutDir>$(SolutionDir)\bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)\Build\$(ProjectName)\bin\$(Configuration)\$(Platform)</OutDir>
<IntDir>$(SolutionDir)\obj\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)\Build\$(ProjectName)\obj\$(Configuration)\$(Platform)</IntDir>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<GenerateManifest>false</GenerateManifest> <GenerateManifest>false</GenerateManifest>
<OutDir>$(SolutionDir)\bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)\Build\$(ProjectName)\bin\$(Configuration)\$(Platform)</OutDir>
<IntDir>$(SolutionDir)\obj\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)\Build\$(ProjectName)\obj\$(Configuration)\$(Platform)</IntDir>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<GenerateManifest>false</GenerateManifest> <GenerateManifest>false</GenerateManifest>
<OutDir>$(SolutionDir)\bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)\Build\$(ProjectName)\bin\$(Configuration)\$(Platform)</OutDir>
<IntDir>$(SolutionDir)\obj\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)\Build\$(ProjectName)\obj\$(Configuration)\$(Platform)</IntDir>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<GenerateManifest>false</GenerateManifest> <GenerateManifest>false</GenerateManifest>
<OutDir>$(SolutionDir)\bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)\Build\$(ProjectName)\bin\$(Configuration)\$(Platform)</OutDir>
<IntDir>$(SolutionDir)\obj\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)\Build\$(ProjectName)\obj\$(Configuration)\$(Platform)</IntDir>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<GenerateManifest>false</GenerateManifest> <GenerateManifest>false</GenerateManifest>
<OutDir>$(SolutionDir)\bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)\Build\$(ProjectName)\bin\$(Configuration)\$(Platform)</OutDir>
<IntDir>$(SolutionDir)\obj\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)\Build\$(ProjectName)\obj\$(Configuration)\$(Platform)</IntDir>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile> <ClCompile>