mirror of
https://github.com/Memorix101/UnityXNA/
synced 2024-12-30 15:25:35 +01:00
75 lines
2.5 KiB
C#
75 lines
2.5 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
|
|
namespace Microsoft.Xna.Framework.Graphics
|
|
{
|
|
public class DepthStencilState : GraphicsResource
|
|
{
|
|
// TODO: We should be asserting if the state has
|
|
// been changed after it has been bound to the device!
|
|
|
|
public bool DepthBufferEnable { get; set; }
|
|
public bool DepthBufferWriteEnable { get; set; }
|
|
public StencilOperation CounterClockwiseStencilDepthBufferFail { get; set; }
|
|
public StencilOperation CounterClockwiseStencilFail { get; set; }
|
|
public CompareFunction CounterClockwiseStencilFunction { get; set; }
|
|
public StencilOperation CounterClockwiseStencilPass { get; set; }
|
|
public CompareFunction DepthBufferFunction { get; set; }
|
|
public int ReferenceStencil { get; set; }
|
|
public StencilOperation StencilDepthBufferFail { get; set; }
|
|
public bool StencilEnable { get; set; }
|
|
public StencilOperation StencilFail { get; set; }
|
|
public CompareFunction StencilFunction { get; set; }
|
|
public int StencilMask { get; set; }
|
|
public StencilOperation StencilPass { get; set; }
|
|
public int StencilWriteMask { get; set; }
|
|
public bool TwoSidedStencilMode { get; set; }
|
|
|
|
public DepthStencilState ()
|
|
{
|
|
DepthBufferEnable = true;
|
|
DepthBufferWriteEnable = true;
|
|
DepthBufferFunction = CompareFunction.LessEqual;
|
|
StencilEnable = false;
|
|
StencilFunction = CompareFunction.Always;
|
|
StencilPass = StencilOperation.Keep;
|
|
StencilFail = StencilOperation.Keep;
|
|
StencilDepthBufferFail = StencilOperation.Keep;
|
|
TwoSidedStencilMode = false;
|
|
CounterClockwiseStencilFunction = CompareFunction.Always;
|
|
CounterClockwiseStencilFail = StencilOperation.Keep;
|
|
CounterClockwiseStencilPass = StencilOperation.Keep;
|
|
CounterClockwiseStencilDepthBufferFail = StencilOperation.Keep;
|
|
StencilMask = Int32.MaxValue;
|
|
StencilWriteMask = Int32.MaxValue;
|
|
ReferenceStencil = 0;
|
|
}
|
|
|
|
public static readonly DepthStencilState Default;
|
|
public static readonly DepthStencilState DepthRead;
|
|
public static readonly DepthStencilState None;
|
|
|
|
static DepthStencilState ()
|
|
{
|
|
Default = new DepthStencilState ()
|
|
{
|
|
DepthBufferEnable = true,
|
|
DepthBufferWriteEnable = true
|
|
};
|
|
|
|
DepthRead = new DepthStencilState ()
|
|
{
|
|
DepthBufferEnable = true,
|
|
DepthBufferWriteEnable = false
|
|
};
|
|
|
|
None = new DepthStencilState ()
|
|
{
|
|
DepthBufferEnable = false,
|
|
DepthBufferWriteEnable = false
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|