feat: add macOS support#551
Conversation
Macos upstream minimal
Macos upstream minimal
macOS Sit-on-Window Performance NotesSummaryThe macOS sit-on-window implementation is expected to be more expensive than the Windows path. The bottleneck is not the sitting animation itself, but how macOS exposes desktop window metadata when we avoid Screen Recording, Accessibility, Input Monitoring, and window-content APIs. Windows can query and move specific HWNDs with cheap Win32 calls such as Main Bottlenecks
Current Mitigations
Why Not Use Permissions HereAccessibility and Screen Recording could unlock other approaches, but they are intentionally not part of this PR:
Practical ExpectationsThe macOS implementation should be usable, but it may not match Windows CPU usage. Windows has direct, mature, per-window APIs for this workflow; macOS requires snapshot-based polling for no-permission window metadata. The most important tuning tradeoff is:
The current implementation chooses a conservative middle ground: throttled snapshots, prediction between updates, and no additional privacy prompts. |
sync recent changes
Summary
This PR adds baseline macOS compatibility while preserving the existing Windows behavior as much as possible. The focus is compile/runtime safety, platform-correct storage, model import support, macOS startup support, app icon handling, HiDPI-friendly window sizing, and initial macOS sit-on-window support.
What Changed
MateEnginePaths..vrm/.mefiles into managed app storage on macOS..vrm/.meselection through code-side validation..appicon setup.What Is Not Supported Yet
Issues about Shaders
For some reasons, certain shaders will not be included, or properly processed/built on macOS. Taking example of my own model, macOS build will not display outline shaders. I am currently unable to handle with this issue since I am not a Unity expert.
Validation
Preview