protected void AddDevice(DisplayMode mode, GraphicsDeviceInformation deviceBaseInfo, GameGraphicsParameters prefferedParameters, List <GraphicsDeviceInformation> graphicsDeviceInfos) { var deviceInfo = deviceBaseInfo.Clone(); deviceInfo.PresentationParameters.RefreshRate = mode.RefreshRate; deviceInfo.PresentationParameters.PreferredFullScreenOutputIndex = prefferedParameters.PreferredFullScreenOutputIndex; deviceBaseInfo.PresentationParameters.DepthBufferShaderResource = prefferedParameters.DepthBufferShaderResource; if (prefferedParameters.IsFullScreen) { deviceInfo.PresentationParameters.BackBufferFormat = mode.Format; deviceInfo.PresentationParameters.BackBufferWidth = mode.Width; deviceInfo.PresentationParameters.BackBufferHeight = mode.Height; } else { deviceInfo.PresentationParameters.BackBufferFormat = prefferedParameters.PreferredBackBufferFormat; deviceInfo.PresentationParameters.BackBufferWidth = prefferedParameters.PreferredBackBufferWidth; deviceInfo.PresentationParameters.BackBufferHeight = prefferedParameters.PreferredBackBufferHeight; } // TODO: Handle multisampling / depthstencil format deviceInfo.PresentationParameters.DepthStencilFormat = prefferedParameters.PreferredDepthStencilFormat; deviceInfo.PresentationParameters.MultiSampleCount = MSAALevel.None; if (!graphicsDeviceInfos.Contains(deviceInfo)) { graphicsDeviceInfos.Add(deviceInfo); } }
protected void AddDevice(GraphicsAdapter graphicsAdapter, DisplayMode mode, GraphicsDeviceInformation deviceBaseInfo, GameGraphicsParameters prefferedParameters, List <GraphicsDeviceInformation> graphicsDeviceInfos) { var deviceInfo = deviceBaseInfo.Clone(); PresentParameters p = new PresentParameters(); p.InitDefaults(); p.FullScreenRefreshRateInHz = mode.RefreshRate; if (prefferedParameters.IsFullScreen) { p.BackBufferWidth = prefferedParameters.PreferredBackBufferWidth; p.BackBufferHeight = prefferedParameters.PreferredBackBufferHeight; p.Windowed = false; } else { p.BackBufferWidth = prefferedParameters.PreferredBackBufferWidth; p.BackBufferHeight = prefferedParameters.PreferredBackBufferHeight; p.Windowed = true; p.FullScreenRefreshRateInHz = 0; } p.DeviceWindowHandle = MainWindow.NativeWindow.Handle; p.AutoDepthStencilFormat = prefferedParameters.PreferredDepthStencilFormat; p.MultiSampleQuality = 0; p.PresentationInterval = prefferedParameters.SynchronizeWithVerticalRetrace ? PresentInterval.One : PresentInterval.Immediate; p.SwapEffect = SwapEffect.Discard; p.PresentFlags = PresentFlags.Video; deviceInfo.PresentationParameters = p; deviceInfo.Adapter = GraphicsAdapter.Adapters[prefferedParameters.PreferredVideoAdapter]; if (!graphicsDeviceInfos.Contains(deviceInfo)) { graphicsDeviceInfos.Add(deviceInfo); } }
protected void AddDevice(GraphicsAdapter graphicsAdapter, DisplayMode mode, GraphicsDeviceInformation deviceBaseInfo, GameGraphicsParameters prefferedParameters, List<GraphicsDeviceInformation> graphicsDeviceInfos) { var deviceInfo = deviceBaseInfo.Clone(); deviceInfo.PresentationParameters.RefreshRate = mode.RefreshRate; if (prefferedParameters.IsFullScreen) { deviceInfo.PresentationParameters.BackBufferWidth = mode.Width; deviceInfo.PresentationParameters.BackBufferHeight = mode.Height; } else { deviceInfo.PresentationParameters.BackBufferWidth = prefferedParameters.PreferredBackBufferWidth; deviceInfo.PresentationParameters.BackBufferHeight = prefferedParameters.PreferredBackBufferHeight; } // TODO: Handle BackBufferFormat / multisampling / depthstencil format deviceInfo.PresentationParameters.BackBufferFormat = prefferedParameters.PreferredBackBufferFormat; deviceInfo.PresentationParameters.DepthStencilFormat = prefferedParameters.PreferredDepthStencilFormat; deviceInfo.PresentationParameters.MultiSampleCount = MSAALevel.None; if (!graphicsDeviceInfos.Contains(deviceInfo)) { graphicsDeviceInfos.Add(deviceInfo); } }
protected void AddDevice(GraphicsAdapter graphicsAdapter, DisplayMode mode, GraphicsDeviceInformation deviceBaseInfo, GameGraphicsParameters prefferedParameters, List<GraphicsDeviceInformation> graphicsDeviceInfos) { var deviceInfo = deviceBaseInfo.Clone(); PresentParameters p = new PresentParameters(); p.InitDefaults(); p.FullScreenRefreshRateInHz = mode.RefreshRate; if (prefferedParameters.IsFullScreen) { p.BackBufferWidth = prefferedParameters.PreferredBackBufferWidth; p.BackBufferHeight = prefferedParameters.PreferredBackBufferHeight; p.Windowed = false; } else { p.BackBufferWidth = prefferedParameters.PreferredBackBufferWidth; p.BackBufferHeight = prefferedParameters.PreferredBackBufferHeight; p.Windowed = true; p.FullScreenRefreshRateInHz = 0; } p.DeviceWindowHandle = MainWindow.NativeWindow.Handle; p.AutoDepthStencilFormat = prefferedParameters.PreferredDepthStencilFormat; p.MultiSampleQuality = 0; p.PresentationInterval = prefferedParameters.SynchronizeWithVerticalRetrace ? PresentInterval.One : PresentInterval.Immediate; p.SwapEffect = SwapEffect.Discard; p.PresentFlags = PresentFlags.Video; deviceInfo.PresentationParameters = p; deviceInfo.Adapter = GraphicsAdapter.Adapters[prefferedParameters.PreferredVideoAdapter]; if (!graphicsDeviceInfos.Contains(deviceInfo)) { graphicsDeviceInfos.Add(deviceInfo); } }