Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
        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);
            }
        }