using Ghost.Core; using Ghost.Graphics.Test.Windows; using Microsoft.UI.Xaml; using Microsoft.VisualStudio.TestTools.UnitTesting.AppContainer; using System.Runtime.InteropServices; // To learn more about WinUI, the WinUI project structure, // and more about our project templates, see: http://aka.ms/winui-project-info. namespace Ghost.Graphics.Test; /// /// Provides application-specific behavior to supplement the default Application class. /// public partial class UnitTestApp : Application { private Window? _window; /// /// Initializes the singleton application object. This is the first line of authored code /// executed, and as such is the logical equivalent of main() or WinMain(). /// public UnitTestApp() { InitializeComponent(); } private static void LoadDll() { var currentDir = AppContext.BaseDirectory; var platform = OperatingSystem.IsWindows() ? "win" : OperatingSystem.IsLinux() ? "linux" : OperatingSystem.IsMacOS() ? "osx" : "unknown"; var arch = Environment.Is64BitProcess ? "x64" : "x86"; var nativeDllDir = Path.Combine(currentDir, "runtime", platform + "-" + arch, "native"); if (Directory.Exists(nativeDllDir)) { foreach (var dll in Directory.EnumerateFiles(nativeDllDir, "*.dll")) { NativeLibrary.Load(dll); } } } /// /// Invoked when the application is launched. /// /// Details about the launch request and process. protected override void OnLaunched(LaunchActivatedEventArgs args) { LoadDll(); _window = new GraphicsTestWindow(); _window.Activate(); UnhandledException += (sender, e) => { Logger.LogError(e.Exception); #if DEBUG System.Diagnostics.Debugger.Break(); #endif }; } }