| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- namespace Ryujinx.Graphics.Gal
- {
- public struct ColorMaskState
- {
- private static readonly ColorMaskState _Default = new ColorMaskState()
- {
- Red = true,
- Green = true,
- Blue = true,
- Alpha = true
- };
- public static ColorMaskState Default => _Default;
- public bool Red;
- public bool Green;
- public bool Blue;
- public bool Alpha;
- }
- public struct BlendState
- {
- private static readonly BlendState _Default = new BlendState()
- {
- Enabled = false,
- SeparateAlpha = false,
- EquationRgb = GalBlendEquation.FuncAdd,
- FuncSrcRgb = GalBlendFactor.One,
- FuncDstRgb = GalBlendFactor.Zero,
- EquationAlpha = GalBlendEquation.FuncAdd,
- FuncSrcAlpha = GalBlendFactor.One,
- FuncDstAlpha = GalBlendFactor.Zero
- };
- public static BlendState Default => _Default;
- public bool Enabled;
- public bool SeparateAlpha;
- public GalBlendEquation EquationRgb;
- public GalBlendFactor FuncSrcRgb;
- public GalBlendFactor FuncDstRgb;
- public GalBlendEquation EquationAlpha;
- public GalBlendFactor FuncSrcAlpha;
- public GalBlendFactor FuncDstAlpha;
- }
- public class GalPipelineState
- {
- public const int Stages = 5;
- public const int ConstBuffersPerStage = 18;
- public const int RenderTargetsCount = 8;
- public long[][] ConstBufferKeys;
- public GalVertexBinding[] VertexBindings;
- public bool FramebufferSrgb;
- public float FlipX;
- public float FlipY;
- public int Instance;
- public GalFrontFace FrontFace;
- public bool CullFaceEnabled;
- public GalCullFace CullFace;
- public bool DepthTestEnabled;
- public bool DepthWriteEnabled;
- public GalComparisonOp DepthFunc;
- public float DepthRangeNear;
- public float DepthRangeFar;
- public bool StencilTestEnabled;
- public bool StencilTwoSideEnabled;
- public GalComparisonOp StencilBackFuncFunc;
- public int StencilBackFuncRef;
- public uint StencilBackFuncMask;
- public GalStencilOp StencilBackOpFail;
- public GalStencilOp StencilBackOpZFail;
- public GalStencilOp StencilBackOpZPass;
- public uint StencilBackMask;
- public GalComparisonOp StencilFrontFuncFunc;
- public int StencilFrontFuncRef;
- public uint StencilFrontFuncMask;
- public GalStencilOp StencilFrontOpFail;
- public GalStencilOp StencilFrontOpZFail;
- public GalStencilOp StencilFrontOpZPass;
- public uint StencilFrontMask;
- public bool BlendIndependent;
- public BlendState[] Blends;
- public bool ColorMaskCommon;
- public ColorMaskState[] ColorMasks;
- public bool PrimitiveRestartEnabled;
- public uint PrimitiveRestartIndex;
- public GalPipelineState()
- {
- ConstBufferKeys = new long[Stages][];
- for (int Stage = 0; Stage < Stages; Stage++)
- {
- ConstBufferKeys[Stage] = new long[ConstBuffersPerStage];
- }
- Blends = new BlendState[RenderTargetsCount];
- ColorMasks = new ColorMaskState[RenderTargetsCount];
- }
- }
- }
|