#region License /* FNA - XNA4 Reimplementation for Desktop Platforms * Copyright 2009-2022 Ethan Lee and the MonoGame Team * * Released under the Microsoft Public License. * See LICENSE for details. */ #endregion #region Using Statements using System; #endregion namespace Microsoft.Xna.Framework.Graphics { [Serializable] public class PresentationParameters { #region Public Properties public SurfaceFormat BackBufferFormat { get { return parameters.backBufferFormat; } set { parameters.backBufferFormat = value; } } public int BackBufferHeight { get { return parameters.backBufferHeight; } set { parameters.backBufferHeight = value; } } public int BackBufferWidth { get { return parameters.backBufferWidth; } set { parameters.backBufferWidth = value; } } public Rectangle Bounds { get { return new Rectangle(0, 0, BackBufferWidth, BackBufferHeight); } } public IntPtr DeviceWindowHandle { get { return parameters.deviceWindowHandle; } set { parameters.deviceWindowHandle = value; } } public DepthFormat DepthStencilFormat { get { return parameters.depthStencilFormat; } set { parameters.depthStencilFormat = value; } } public bool IsFullScreen { get { return parameters.isFullScreen == 1; } set { parameters.isFullScreen = (byte) (value ? 1 : 0); } } public int MultiSampleCount { get { return parameters.multiSampleCount; } set { parameters.multiSampleCount = value; } } public PresentInterval PresentationInterval { get { return parameters.presentationInterval; } set { parameters.presentationInterval = value; } } public DisplayOrientation DisplayOrientation { get { return parameters.displayOrientation; } set { parameters.displayOrientation = value; } } public RenderTargetUsage RenderTargetUsage { get { return parameters.renderTargetUsage; } set { parameters.renderTargetUsage = value; } } #endregion #region Internal FNA3D Variables internal FNA3D.FNA3D_PresentationParameters parameters; #endregion #region Public Constructors public PresentationParameters() { BackBufferFormat = SurfaceFormat.Color; BackBufferWidth = GraphicsDeviceManager.DefaultBackBufferWidth; BackBufferHeight = GraphicsDeviceManager.DefaultBackBufferHeight; DeviceWindowHandle = IntPtr.Zero; IsFullScreen = false; // FIXME: Is this the default? DepthStencilFormat = DepthFormat.None; MultiSampleCount = 0; PresentationInterval = PresentInterval.Default; DisplayOrientation = DisplayOrientation.Default; RenderTargetUsage = RenderTargetUsage.DiscardContents; } #endregion #region Public Methods public PresentationParameters Clone() { PresentationParameters clone = new PresentationParameters(); clone.BackBufferFormat = BackBufferFormat; clone.BackBufferHeight = BackBufferHeight; clone.BackBufferWidth = BackBufferWidth; clone.DeviceWindowHandle = DeviceWindowHandle; clone.IsFullScreen = IsFullScreen; clone.DepthStencilFormat = DepthStencilFormat; clone.MultiSampleCount = MultiSampleCount; clone.PresentationInterval = PresentationInterval; clone.DisplayOrientation = DisplayOrientation; clone.RenderTargetUsage = RenderTargetUsage; return clone; } #endregion } }