Commit Description:
Tweak calculations....
Commit Description:
Tweak calculations. Prevent a negative number of visitors and separate visitors from donors.
File last commit:
Show/Diff file:
Action:
FNA/src/Graphics/States/BlendState.cs
242 lines | 3.9 KiB | text/x-csharp | CSharpLexer
#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 BlendState : GraphicsResource
{
#region Public Properties
public BlendFunction AlphaBlendFunction
{
get
{
return state.alphaBlendFunction;
}
set
{
state.alphaBlendFunction = value;
}
}
public Blend AlphaDestinationBlend
{
get
{
return state.alphaDestinationBlend;
}
set
{
state.alphaDestinationBlend = value;
}
}
public Blend AlphaSourceBlend
{
get
{
return state.alphaSourceBlend;
}
set
{
state.alphaSourceBlend = value;
}
}
public BlendFunction ColorBlendFunction
{
get
{
return state.colorBlendFunction;
}
set
{
state.colorBlendFunction = value;
}
}
public Blend ColorDestinationBlend
{
get
{
return state.colorDestinationBlend;
}
set
{
state.colorDestinationBlend = value;
}
}
public Blend ColorSourceBlend
{
get
{
return state.colorSourceBlend;
}
set
{
state.colorSourceBlend = value;
}
}
public ColorWriteChannels ColorWriteChannels
{
get
{
return state.colorWriteEnable;
}
set
{
state.colorWriteEnable = value;
}
}
public ColorWriteChannels ColorWriteChannels1
{
get
{
return state.colorWriteEnable1;
}
set
{
state.colorWriteEnable1 = value;
}
}
public ColorWriteChannels ColorWriteChannels2
{
get
{
return state.colorWriteEnable2;
}
set
{
state.colorWriteEnable2 = value;
}
}
public ColorWriteChannels ColorWriteChannels3
{
get
{
return state.colorWriteEnable3;
}
set
{
state.colorWriteEnable3 = value;
}
}
public Color BlendFactor
{
get
{
return state.blendFactor;
}
set
{
state.blendFactor = value;
}
}
public int MultiSampleMask
{
get
{
return state.multiSampleMask;
}
set
{
state.multiSampleMask = value;
}
}
#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 Internal FNA3D Variables
internal FNA3D.FNA3D_BlendState state;
#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
}
}