private void App_OnStartup(object sender, StartupEventArgs e) { AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException; BindingErrorListener.EnableExceptionOnBindingError(); LogFactory.ConfigureFileTarget("GeishaEditor.log"); var log = LogFactory.Create(typeof(App)); log.Info("Geisha Editor is being started."); var containerBuilder = new ContainerBuilder(); CommonModules.RegisterAll(containerBuilder); EngineModules.RegisterAll(containerBuilder); EditorModules.RegisterAll(containerBuilder); containerBuilder.RegisterInstance(new CSCoreAudioBackend()).As <IAudioBackend>(); containerBuilder.RegisterInstance(new DirectXRenderingBackend()).As <IRenderingBackend>(); _container = containerBuilder.Build(); _lifetimeScope = _container.BeginLifetimeScope(); ViewRepository.Default.RegisterViewsFromCurrentlyLoadedAssemblies(); var mainViewModel = _lifetimeScope.Resolve <MainViewModel>(); _mainWindow = new MainWindow(mainViewModel); _mainWindow.Show(); _mainWindow.LoadLayout(); log.Info("Geisha Editor started successfully."); }
public virtual void SetUp() { var renderingConfigurationBuilder = RenderingConfiguration.CreateBuilder(); ConfigureRendering(renderingConfigurationBuilder); var renderingConfiguration = renderingConfigurationBuilder.Build(); _renderForm = new RenderForm("IntegrationTestsWindow") { ClientSize = new Size(renderingConfiguration.ScreenWidth, renderingConfiguration.ScreenWidth) }; if (ShowDebugWindow) { _renderForm.Show(); } var containerBuilder = new ContainerBuilder(); // Register configuration containerBuilder.RegisterInstance(renderingConfiguration).As <RenderingConfiguration>().SingleInstance(); // Register engine back-ends containerBuilder.RegisterInstance(new CSCoreAudioBackend()).As <IAudioBackend>().SingleInstance(); containerBuilder.RegisterInstance(new WindowsInputBackend(_renderForm)).As <IInputBackend>().SingleInstance(); containerBuilder.RegisterInstance(new DirectXRenderingBackend(_renderForm, DriverType.Software)).As <IRenderingBackend>().SingleInstance(); // Register common modules CommonModules.RegisterAll(containerBuilder); // Register engine modules EngineModules.RegisterAll(containerBuilder); // Register test components RegisterTestComponents(containerBuilder); // Register tested components containerBuilder.RegisterType <TSystemUnderTest>().AsSelf().SingleInstance(); _container = containerBuilder.Build(); _lifetimeScope = _container.BeginLifetimeScope(); SystemUnderTest = _lifetimeScope.Resolve <TSystemUnderTest>(); }