2018-08-10 06:09:40 +02:00
|
|
|
|
namespace Ryujinx.Graphics.Gal
|
|
|
|
|
{
|
|
|
|
|
public struct GalVertexBinding
|
|
|
|
|
{
|
|
|
|
|
//VboKey shouldn't be here, but ARB_vertex_attrib_binding is core since 4.3
|
|
|
|
|
|
|
|
|
|
public bool Enabled;
|
|
|
|
|
public int Stride;
|
|
|
|
|
public long VboKey;
|
2018-08-25 06:16:58 +02:00
|
|
|
|
public bool Instanced;
|
|
|
|
|
public int Divisor;
|
2018-08-10 06:09:40 +02:00
|
|
|
|
public GalVertexAttrib[] Attribs;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class GalPipelineState
|
|
|
|
|
{
|
|
|
|
|
public const int Stages = 5;
|
|
|
|
|
public const int ConstBuffersPerStage = 18;
|
|
|
|
|
|
|
|
|
|
public long[][] ConstBufferKeys;
|
|
|
|
|
|
|
|
|
|
public GalVertexBinding[] VertexBindings;
|
|
|
|
|
|
2018-09-18 06:30:35 +02:00
|
|
|
|
public bool FramebufferSrgb;
|
|
|
|
|
|
2018-08-10 06:09:40 +02:00
|
|
|
|
public float FlipX;
|
|
|
|
|
public float FlipY;
|
|
|
|
|
|
2018-08-25 06:16:58 +02:00
|
|
|
|
public int Instance;
|
|
|
|
|
|
2018-08-10 06:09:40 +02:00
|
|
|
|
public GalFrontFace FrontFace;
|
|
|
|
|
|
|
|
|
|
public bool CullFaceEnabled;
|
|
|
|
|
public GalCullFace CullFace;
|
|
|
|
|
|
|
|
|
|
public bool DepthTestEnabled;
|
2018-09-20 03:02:11 +02:00
|
|
|
|
public bool DepthWriteEnabled;
|
2018-08-10 06:09:40 +02:00
|
|
|
|
public GalComparisonOp DepthFunc;
|
|
|
|
|
|
|
|
|
|
public bool StencilTestEnabled;
|
|
|
|
|
|
|
|
|
|
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 BlendEnabled;
|
|
|
|
|
public bool BlendSeparateAlpha;
|
|
|
|
|
public GalBlendEquation BlendEquationRgb;
|
|
|
|
|
public GalBlendFactor BlendFuncSrcRgb;
|
|
|
|
|
public GalBlendFactor BlendFuncDstRgb;
|
|
|
|
|
public GalBlendEquation BlendEquationAlpha;
|
|
|
|
|
public GalBlendFactor BlendFuncSrcAlpha;
|
|
|
|
|
public GalBlendFactor BlendFuncDstAlpha;
|
|
|
|
|
|
|
|
|
|
public bool PrimitiveRestartEnabled;
|
|
|
|
|
public uint PrimitiveRestartIndex;
|
|
|
|
|
|
|
|
|
|
public GalPipelineState()
|
|
|
|
|
{
|
|
|
|
|
ConstBufferKeys = new long[Stages][];
|
|
|
|
|
|
|
|
|
|
for (int Stage = 0; Stage < Stages; Stage++)
|
|
|
|
|
{
|
|
|
|
|
ConstBufferKeys[Stage] = new long[ConstBuffersPerStage];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|