diff --git a/Source/Editor/Cooker/GameCooker.cpp b/Source/Editor/Cooker/GameCooker.cpp index 98cf609a7..969e71b71 100644 --- a/Source/Editor/Cooker/GameCooker.cpp +++ b/Source/Editor/Cooker/GameCooker.cpp @@ -239,7 +239,7 @@ String CookingData::GetGameBinariesPath() const archDir = TEXT("ARM64"); break; default: - CRASH; + CRASH; return String::Empty; } diff --git a/Source/Editor/Cooker/Steps/ValidateStep.cpp b/Source/Editor/Cooker/Steps/ValidateStep.cpp index cf7cab4dc..b18994f9b 100644 --- a/Source/Editor/Cooker/Steps/ValidateStep.cpp +++ b/Source/Editor/Cooker/Steps/ValidateStep.cpp @@ -69,8 +69,6 @@ bool ValidateStep::Perform(CookingData& data) return true; } - // TODO: validate version - AssetInfo info; if (!Content::GetAssetInfo(gameSettings->FirstScene, info)) { @@ -79,9 +77,5 @@ bool ValidateStep::Perform(CookingData& data) } } - // TODO: validate more game config - - // TODO: validate all input scenes? - return false; } diff --git a/Source/Editor/Editor.cpp b/Source/Editor/Editor.cpp index 3806317b3..18bf43a3a 100644 --- a/Source/Editor/Editor.cpp +++ b/Source/Editor/Editor.cpp @@ -654,7 +654,7 @@ Window* Editor::CreateMainWindow() PROFILE_MEM(Editor); Window* window = Managed->GetMainWindow(); -#if PLATFORM_LINUX || (PLATFORM_MAC && PLATFORM_SDL) +#if PLATFORM_LINUX || PLATFORM_MAC // Set window icon const String iconPath = Globals::BinariesFolder / TEXT("Logo.png"); if (FileSystem::FileExists(iconPath)) diff --git a/Source/Engine/Platform/Mac/MacWindow.cpp b/Source/Engine/Platform/Mac/MacWindow.cpp index adb33962f..55b25a314 100644 --- a/Source/Engine/Platform/Mac/MacWindow.cpp +++ b/Source/Engine/Platform/Mac/MacWindow.cpp @@ -15,6 +15,7 @@ #include "Engine/Input/Mouse.h" #include "Engine/Input/Keyboard.h" #include "Engine/Graphics/RenderTask.h" +#include "Engine/Graphics/Textures/TextureData.h" #include #include #include @@ -1302,4 +1303,37 @@ void MacWindow::SetCursor(CursorType type) } } +void MacWindow::SetIcon(TextureData& icon) +{ + // Get pixels + Array colorData; + icon.GetPixels(colorData); + + // Convert to Cocoa image + NSImage* image = [[NSImage alloc] initWithSize:NSMakeSize(icon.Width, icon.Height)]; + if (image == nil) + return; + NSBitmapImageRep* rep = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL + pixelsWide:icon.Width + pixelsHigh:icon.Height + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSDeviceRGBColorSpace + bytesPerRow:icon.Width * 4 + bitsPerPixel:32]; + if (rep == nil) + return; + + // Copy the pixels + Platform::MemoryCopy([rep bitmapData], colorData.Get(), colorData.Count() * sizeof(Color32)); + + // Add the image representation + [image addRepresentation:rep]; + + // Set app icon + [NSApp setApplicationIconImage:image]; +} + #endif diff --git a/Source/Engine/Platform/Mac/MacWindow.h b/Source/Engine/Platform/Mac/MacWindow.h index 91a1219e0..76a2690a8 100644 --- a/Source/Engine/Platform/Mac/MacWindow.h +++ b/Source/Engine/Platform/Mac/MacWindow.h @@ -63,6 +63,7 @@ public: void StartTrackingMouse(bool useMouseScreenOffset) override; void EndTrackingMouse() override; void SetCursor(CursorType type) override; + void SetIcon(TextureData& icon) override; }; #endif diff --git a/Source/FlaxEditor.Build.cs b/Source/FlaxEditor.Build.cs index 5019dbb66..7b422a8a6 100644 --- a/Source/FlaxEditor.Build.cs +++ b/Source/FlaxEditor.Build.cs @@ -71,8 +71,7 @@ public class FlaxEditor : EngineTarget break; case TargetPlatform.Mac: options.OutputFolder = Path.Combine(options.WorkingDirectory, "Binaries", "Editor", "Mac", options.Configuration.ToString()); - if (EngineConfiguration.WithSDL(options)) - options.DependencyFiles.Add(Path.Combine(Globals.EngineRoot, "Source", "Logo.png")); + options.DependencyFiles.Add(Path.Combine(Globals.EngineRoot, "Source", "Platforms", "Mac", "Logo.png")); break; default: throw new InvalidPlatformException(options.Platform.Target, "Not supported Editor platform."); } diff --git a/Source/Platforms/Mac/Logo.png b/Source/Platforms/Mac/Logo.png new file mode 100644 index 000000000..06bdecf46 --- /dev/null +++ b/Source/Platforms/Mac/Logo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9de813ad971bee3cffc5c0dcaffeed61ea56f97526d021e79f267db025f09414 +size 80147 diff --git a/Source/Tools/Flax.Build/Deploy/Deployment.Editor.cs b/Source/Tools/Flax.Build/Deploy/Deployment.Editor.cs index 8c1fb83d5..bbd6bf167 100644 --- a/Source/Tools/Flax.Build/Deploy/Deployment.Editor.cs +++ b/Source/Tools/Flax.Build/Deploy/Deployment.Editor.cs @@ -357,8 +357,7 @@ namespace Flax.Deploy DeployFile(src, dst, "MoltenVK_icd.json"); DeployFiles(src, dst, "*.dll"); DeployFiles(src, dst, "*.dylib"); - if (EngineConfiguration.UseSDL && MacConfiguration.UseSDL) - DeployFile(src, dst, "Logo.png"); + DeployFile(src, dst, "Logo.png"); // Optimize package size Utilities.Run("strip", "FlaxEditor", null, dst, Utilities.RunOptions.None);