ryujinx/src/Ryujinx.Graphics.GAL/BlendFactor.cs
2025-11-11 12:55:36 -06:00

52 lines
1.4 KiB
C#

namespace Ryujinx.Graphics.GAL
{
public enum BlendFactor
{
Zero = 1,
One,
SrcColor,
OneMinusSrcColor,
SrcAlpha,
OneMinusSrcAlpha,
DstAlpha,
OneMinusDstAlpha,
DstColor,
OneMinusDstColor,
SrcAlphaSaturate,
Src1Color = 0x10,
OneMinusSrc1Color,
Src1Alpha,
OneMinusSrc1Alpha,
ConstantColor = 0xc001,
OneMinusConstantColor,
ConstantAlpha,
OneMinusConstantAlpha,
ZeroGl = 0x4000,
OneGl = 0x4001,
SrcColorGl = 0x4300,
OneMinusSrcColorGl = 0x4301,
SrcAlphaGl = 0x4302,
OneMinusSrcAlphaGl = 0x4303,
DstAlphaGl = 0x4304,
OneMinusDstAlphaGl = 0x4305,
DstColorGl = 0x4306,
OneMinusDstColorGl = 0x4307,
SrcAlphaSaturateGl = 0x4308,
Src1ColorGl = 0xc900,
OneMinusSrc1ColorGl = 0xc901,
Src1AlphaGl = 0xc902,
OneMinusSrc1AlphaGl = 0xc903,
}
public static class BlendFactorExtensions
{
extension(BlendFactor factor)
{
public bool IsDualSource => factor is
BlendFactor.Src1Color or BlendFactor.Src1ColorGl or BlendFactor.Src1Alpha or BlendFactor.Src1AlphaGl
or BlendFactor.OneMinusSrc1Color or BlendFactor.OneMinusSrc1ColorGl or BlendFactor.OneMinusSrc1Alpha
or BlendFactor.OneMinusSrc1AlphaGl;
}
}
}