mirror of
https://github.com/Facepunch/sbox-public.git
synced 2026-04-17 12:57:57 -04:00
* Gitignore for unix objects and bins * libmpg123 mac * try with kosmiskrisp instead of molten xx, much less problematic? * Explicit cast for box3d and include for utlblockmemory to make clang happ * Simple DLLImportResolver for the 3 platforms, on linux/mac it tries to load DLLs from managed/ directory even with PATH being set, and backport the steamworks behaviour from Facepunch.Steamwokrs * Dont ShaderCompile outside of tools, resourcecompiler is not even enabled there * Only enable steam audio binaural effect on windows, we self compile it with that feature on there, dont bother yet for linux/mac until we have a better way to do dependency track * Fix DLLImportResolver, also let's try to keep just a single set of binaries for managed without platform variants * Fix rect_t interop on ARM64 On ARM64, NativeRect (4 floats = HFA) gets passed in float registers (v0-v3), but the C++ function reads from x1 expecting a pointer → null crash. On x64 Windows, passing a 16-byte struct "by value" through an unmanaged function pointer accidentally works because the x64 ABI passes it by hidden pointer anyway. On ARM64, NativeRect (4 floats = HFA) goes into float registers v0-v3, leaving x1=0x0 for the C++ Rect_t* parameter. * Building the load path via string interpolation hardcodes "/" and can produce double-separators because NetCore.NativeDllPath already includes a trailing slash. For consistency with the rest of the codebase (e.g., InteropGen uses Path.Combine with NativeDllPath) and to avoid path quirks across platforms, use Path.Combine(NetCore.NativeDllPath, nativeName). Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Format --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>