/// <summary> /// Initialize the rendering engine. /// </summary> /// <param name="autoCreateWindow">If true, a default window is created to serve as a rendering target.</param> /// <param name="windowTitle">Text to display on the window caption if not fullscreen.</param> /// <returns>A RenderWindow implementation specific to this RenderSystem.</returns> /// <remarks>All subclasses should call this method from within thier own intialize methods.</remarks> public override RenderWindow Initialize(bool autoCreateWindow, string windowTitle) { LogManager.Instance.Write("[XNA] : Subsystem Initializing"); #if !( XBOX || XBOX360 || SILVERLIGHT || WINDOWS_PHONE ) WindowEventMonitor.Instance.MessagePump = Win32MessageHandling.MessagePump; #endif _activeDriver = XnaHelper.GetDriverInfo()[ConfigOptions["Rendering Device"].Value]; if (_activeDriver == null) { throw new ArgumentException("Problems finding requested Xna driver!"); } RenderWindow renderWindow = null; // register the HLSL program manager //HighLevelGpuProgramManager.Instance.AddFactory(new HLSLProgramFactory()); StateManager = new StateManagement(); if (autoCreateWindow) { #if SILVERLIGHT var width = (int)XnaRenderWindow.DrawingSurface.ActualWidth; var height = (int)XnaRenderWindow.DrawingSurface.ActualHeight; #else var width = 800; var height = 600; #endif var bpp = 32; var fullScreen = false; var optVM = ConfigOptions["Video Mode"]; var vm = optVM.Value; width = int.Parse(vm.Substring(0, vm.IndexOf("x"))); height = int.Parse(vm.Substring(vm.IndexOf("x") + 1, vm.IndexOf("@") - (vm.IndexOf("x") + 1))); bpp = int.Parse(vm.Substring(vm.IndexOf("@") + 1, vm.IndexOf("-") - (vm.IndexOf("@") + 1))); #if !(XBOX || XBOX360) fullScreen = (ConfigOptions["Full Screen"].Value == "Yes"); #endif var miscParams = new NamedParameterList(); miscParams.Add("title", windowTitle); miscParams.Add("colorDepth", bpp); //miscParams.Add( "FSAA", this._fsaaType ); miscParams.Add("FSAAQuality", _fsaaQuality); miscParams.Add("vsync", _vSync); miscParams.Add("useNVPerfHUD", _useNVPerfHUD); // create the render window renderWindow = CreateRenderWindow("Main Window", width, height, fullScreen, miscParams); } new XnaMaterialManager(); LogManager.Instance.Write("[XNA] : Subsystem Initialized successfully."); return renderWindow; }