Show More
Commit Description:
Various UI improvements.
Commit Description:
Various UI improvements.
References:
File last commit:
Show/Diff file:
Action:
FNA/src/Graphics/States/BlendState.cs
164 lines | 2.8 KiB | text/x-csharp | CSharpLexer
164 lines | 2.8 KiB | text/x-csharp | CSharpLexer
r0 | #region License | |||
/* FNA - XNA4 Reimplementation for Desktop Platforms | ||||
* Copyright 2009-2020 Ethan Lee and the MonoGame Team | ||||
* | ||||
* Released under the Microsoft Public License. | ||||
* See LICENSE for details. | ||||
*/ | ||||
#endregion | ||||
namespace Microsoft.Xna.Framework.Graphics | ||||
{ | ||||
public class BlendState : GraphicsResource | ||||
{ | ||||
#region Public Properties | ||||
public BlendFunction AlphaBlendFunction | ||||
{ | ||||
get; | ||||
set; | ||||
} | ||||
public Blend AlphaDestinationBlend | ||||
{ | ||||
get; | ||||
set; | ||||
} | ||||
public Blend AlphaSourceBlend | ||||
{ | ||||
get; | ||||
set; | ||||
} | ||||
public BlendFunction ColorBlendFunction | ||||
{ | ||||
get; | ||||
set; | ||||
} | ||||
public Blend ColorDestinationBlend | ||||
{ | ||||
get; | ||||
set; | ||||
} | ||||
public Blend ColorSourceBlend | ||||
{ | ||||
get; | ||||
set; | ||||
} | ||||
public ColorWriteChannels ColorWriteChannels | ||||
{ | ||||
get; | ||||
set; | ||||
} | ||||
public ColorWriteChannels ColorWriteChannels1 | ||||
{ | ||||
get; | ||||
set; | ||||
} | ||||
public ColorWriteChannels ColorWriteChannels2 | ||||
{ | ||||
get; | ||||
set; | ||||
} | ||||
public ColorWriteChannels ColorWriteChannels3 | ||||
{ | ||||
get; | ||||
set; | ||||
} | ||||
public Color BlendFactor | ||||
{ | ||||
get; | ||||
set; | ||||
} | ||||
public int MultiSampleMask | ||||
{ | ||||
get; | ||||
set; | ||||
} | ||||
#endregion | ||||
#region Public BlendState Presets | ||||
public static readonly BlendState Additive = new BlendState( | ||||
"BlendState.Additive", | ||||
Blend.SourceAlpha, | ||||
Blend.SourceAlpha, | ||||
Blend.One, | ||||
Blend.One | ||||
); | ||||
public static readonly BlendState AlphaBlend = new BlendState( | ||||
"BlendState.AlphaBlend", | ||||
Blend.One, | ||||
Blend.One, | ||||
Blend.InverseSourceAlpha, | ||||
Blend.InverseSourceAlpha | ||||
); | ||||
public static readonly BlendState NonPremultiplied = new BlendState( | ||||
"BlendState.NonPremultiplied", | ||||
Blend.SourceAlpha, | ||||
Blend.SourceAlpha, | ||||
Blend.InverseSourceAlpha, | ||||
Blend.InverseSourceAlpha | ||||
); | ||||
public static readonly BlendState Opaque = new BlendState( | ||||
"BlendState.Opaque", | ||||
Blend.One, | ||||
Blend.One, | ||||
Blend.Zero, | ||||
Blend.Zero | ||||
); | ||||
#endregion | ||||
#region Public Constructor | ||||
public BlendState() | ||||
{ | ||||
AlphaBlendFunction = BlendFunction.Add; | ||||
AlphaDestinationBlend = Blend.Zero; | ||||
AlphaSourceBlend = Blend.One; | ||||
ColorBlendFunction = BlendFunction.Add; | ||||
ColorDestinationBlend = Blend.Zero; | ||||
ColorSourceBlend = Blend.One; | ||||
ColorWriteChannels = ColorWriteChannels.All; | ||||
ColorWriteChannels1 = ColorWriteChannels.All; | ||||
ColorWriteChannels2 = ColorWriteChannels.All; | ||||
ColorWriteChannels3 = ColorWriteChannels.All; | ||||
BlendFactor = Color.White; | ||||
MultiSampleMask = -1; // AKA 0xFFFFFFFF | ||||
} | ||||
#endregion | ||||
#region Private Constructor | ||||
private BlendState( | ||||
string name, | ||||
Blend colorSourceBlend, | ||||
Blend alphaSourceBlend, | ||||
Blend colorDestBlend, | ||||
Blend alphaDestBlend | ||||
) : this() { | ||||
Name = name; | ||||
ColorSourceBlend = colorSourceBlend; | ||||
AlphaSourceBlend = alphaSourceBlend; | ||||
ColorDestinationBlend = colorDestBlend; | ||||
AlphaDestinationBlend = alphaDestBlend; | ||||
} | ||||
#endregion | ||||
} | ||||
} | ||||