Commit Description:
Various UI improvements.
Commit Description:
Various UI improvements.
File last commit:
Show/Diff file:
Action:
FNA/src/Graphics/States/BlendState.cs
164 lines | 2.8 KiB | text/x-csharp | CSharpLexer
#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
}
}