diff --git a/Source/Editor/Cooker/CookingData.h b/Source/Editor/Cooker/CookingData.h index ef12d204e..06e48cc95 100644 --- a/Source/Editor/Cooker/CookingData.h +++ b/Source/Editor/Cooker/CookingData.h @@ -134,6 +134,12 @@ API_ENUM() enum class BuildPlatform /// API_ENUM(Attributes="EditorDisplay(null, \"iOS ARM64\")") iOSARM64 = 14, + + /// + /// Windows (ARM64) + /// + API_ENUM(Attributes = "EditorDisplay(null, \"Windows ARM64\")") + WindowsARM64 = 15, }; /// diff --git a/Source/Editor/Cooker/GameCooker.cpp b/Source/Editor/Cooker/GameCooker.cpp index 118dd397f..17392adee 100644 --- a/Source/Editor/Cooker/GameCooker.cpp +++ b/Source/Editor/Cooker/GameCooker.cpp @@ -148,6 +148,8 @@ const Char* ToString(const BuildPlatform platform) return TEXT("Mac ARM64"); case BuildPlatform::iOSARM64: return TEXT("iOS ARM64"); + case BuildPlatform::WindowsARM64: + return TEXT("Windows ARM64"); default: return TEXT(""); } @@ -300,6 +302,10 @@ void CookingData::GetBuildPlatformName(const Char*& platform, const Char*& archi platform = TEXT("iOS"); architecture = TEXT("ARM64"); break; + case BuildPlatform::WindowsARM64: + platform = TEXT("Windows"); + architecture = TEXT("ARM64"); + break; default: LOG(Fatal, "Unknown or unsupported build platform."); } @@ -386,6 +392,9 @@ PlatformTools* GameCooker::GetTools(BuildPlatform platform) case BuildPlatform::Windows64: result = New(ArchitectureType::x64); break; + case BuildPlatform::WindowsARM64: + result = New(ArchitectureType::ARM64); + break; #endif #if PLATFORM_TOOLS_UWP case BuildPlatform::UWPx86: @@ -547,7 +556,12 @@ void GameCooker::GetCurrentPlatform(PlatformType& platform, BuildPlatform& build switch (PLATFORM_TYPE) { case PlatformType::Windows: - buildPlatform = PLATFORM_64BITS ? BuildPlatform::Windows64 : BuildPlatform::Windows32; + if (PLATFORM_ARCH == ArchitectureType::x64) + buildPlatform = BuildPlatform::Windows64; + else if (PLATFORM_ARCH == ArchitectureType::ARM64) + buildPlatform = BuildPlatform::WindowsARM64; + else + buildPlatform = BuildPlatform::Windows32; break; case PlatformType::XboxOne: buildPlatform = BuildPlatform::XboxOne; diff --git a/Source/Editor/Cooker/Steps/CookAssetsStep.cpp b/Source/Editor/Cooker/Steps/CookAssetsStep.cpp index 52050708e..dddfc3ff9 100644 --- a/Source/Editor/Cooker/Steps/CookAssetsStep.cpp +++ b/Source/Editor/Cooker/Steps/CookAssetsStep.cpp @@ -447,6 +447,7 @@ bool ProcessShaderBase(CookAssetsStep::AssetCookData& data, ShaderAssetBase* ass #if PLATFORM_TOOLS_WINDOWS case BuildPlatform::Windows32: case BuildPlatform::Windows64: + case BuildPlatform::WindowsARM64: { const char* platformDefineName = "PLATFORM_WINDOWS"; const auto settings = WindowsPlatformSettings::Get(); diff --git a/Source/Editor/Cooker/Steps/DeployDataStep.cpp b/Source/Editor/Cooker/Steps/DeployDataStep.cpp index 0b4f5d939..76fb3f1b2 100644 --- a/Source/Editor/Cooker/Steps/DeployDataStep.cpp +++ b/Source/Editor/Cooker/Steps/DeployDataStep.cpp @@ -73,6 +73,7 @@ bool DeployDataStep::Perform(CookingData& data) { case BuildPlatform::Windows32: case BuildPlatform::Windows64: + case BuildPlatform::WindowsARM64: canUseSystemDotnet = PLATFORM_TYPE == PlatformType::Windows; break; case BuildPlatform::LinuxX64: diff --git a/Source/Editor/Windows/GameCookerWindow.cs b/Source/Editor/Windows/GameCookerWindow.cs index 55262910c..855faed63 100644 --- a/Source/Editor/Windows/GameCookerWindow.cs +++ b/Source/Editor/Windows/GameCookerWindow.cs @@ -767,13 +767,6 @@ namespace FlaxEditor.Windows Platform = BuildPlatform.Windows64, Mode = BuildConfiguration.Development, }, - new BuildTarget - { - Name = "Windows 32bit", - Output = "Output\\Win32", - Platform = BuildPlatform.Windows32, - Mode = BuildConfiguration.Development, - }, } }; _data = presets; @@ -793,9 +786,9 @@ namespace FlaxEditor.Windows Array.Copy(_data[_selectedPresetIndex].Targets, targets, count); targets[count] = new BuildTarget { - Name = "Xbox One", - Output = "Output\\XboxOne", - Platform = BuildPlatform.XboxOne, + Name = "Windows 64bit", + Output = "Output\\Win64", + Platform = BuildPlatform.Windows64, Mode = BuildConfiguration.Development, }; _data[_selectedPresetIndex].Targets = targets;