#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 namespace Microsoft.Xna.Framework.Graphics { public class RasterizerState : GraphicsResource { #region Public Properties public CullMode CullMode { get { return state.cullMode; } set { state.cullMode = value; } } public float DepthBias { get { return state.depthBias; } set { state.depthBias = value; } } public FillMode FillMode { get { return state.fillMode; } set { state.fillMode = value; } } public bool MultiSampleAntiAlias { get { return state.multiSampleAntiAlias == 1; } set { state.multiSampleAntiAlias = (byte) (value ? 1 : 0); } } public bool ScissorTestEnable { get { return state.scissorTestEnable == 1; } set { state.scissorTestEnable = (byte) (value ? 1 : 0); } } public float SlopeScaleDepthBias { get { return state.slopeScaleDepthBias; } set { state.slopeScaleDepthBias = value; } } #endregion #region Public RasterizerState Presets public static readonly RasterizerState CullClockwise = new RasterizerState( "RasterizerState.CullClockwise", CullMode.CullClockwiseFace ); public static readonly RasterizerState CullCounterClockwise = new RasterizerState( "RasterizerState.CullCounterClockwise", CullMode.CullCounterClockwiseFace ); public static readonly RasterizerState CullNone = new RasterizerState( "RasterizerState.CullNone", CullMode.None ); #endregion #region Internal FNA3D Variables internal FNA3D.FNA3D_RasterizerState state; #endregion #region Public Constructor public RasterizerState() { CullMode = CullMode.CullCounterClockwiseFace; FillMode = FillMode.Solid; DepthBias = 0; MultiSampleAntiAlias = true; ScissorTestEnable = false; SlopeScaleDepthBias = 0; } #endregion #region Private Constructor private RasterizerState( string name, CullMode cullMode ) : this() { Name = name; CullMode = cullMode; } #endregion } }