Initial support for the guest OpenGL driver (NVIDIA and Nouveau)
This commit is contained in:
@ -10,25 +10,59 @@ namespace Ryujinx.Graphics.OpenGL
|
||||
{
|
||||
switch (factor)
|
||||
{
|
||||
case BlendFactor.Zero: return All.Zero;
|
||||
case BlendFactor.One: return All.One;
|
||||
case BlendFactor.SrcColor: return All.SrcColor;
|
||||
case BlendFactor.OneMinusSrcColor: return All.OneMinusSrcColor;
|
||||
case BlendFactor.SrcAlpha: return All.SrcAlpha;
|
||||
case BlendFactor.OneMinusSrcAlpha: return All.OneMinusSrcAlpha;
|
||||
case BlendFactor.DstAlpha: return All.DstAlpha;
|
||||
case BlendFactor.OneMinusDstAlpha: return All.OneMinusDstAlpha;
|
||||
case BlendFactor.DstColor: return All.DstColor;
|
||||
case BlendFactor.OneMinusDstColor: return All.OneMinusDstColor;
|
||||
case BlendFactor.SrcAlphaSaturate: return All.SrcAlphaSaturate;
|
||||
case BlendFactor.Src1Color: return All.Src1Color;
|
||||
case BlendFactor.OneMinusSrc1Color: return All.OneMinusSrc1Color;
|
||||
case BlendFactor.Src1Alpha: return All.Src1Alpha;
|
||||
case BlendFactor.OneMinusSrc1Alpha: return All.OneMinusSrc1Alpha;
|
||||
case BlendFactor.ConstantColor: return All.ConstantColor;
|
||||
case BlendFactor.OneMinusConstantColor: return All.OneMinusConstantColor;
|
||||
case BlendFactor.ConstantAlpha: return All.ConstantAlpha;
|
||||
case BlendFactor.OneMinusConstantAlpha: return All.OneMinusConstantAlpha;
|
||||
case BlendFactor.Zero:
|
||||
case BlendFactor.ZeroGl:
|
||||
return All.Zero;
|
||||
case BlendFactor.One:
|
||||
case BlendFactor.OneGl:
|
||||
return All.One;
|
||||
case BlendFactor.SrcColor:
|
||||
case BlendFactor.SrcColorGl:
|
||||
return All.SrcColor;
|
||||
case BlendFactor.OneMinusSrcColor:
|
||||
case BlendFactor.OneMinusSrcColorGl:
|
||||
return All.OneMinusSrcColor;
|
||||
case BlendFactor.SrcAlpha:
|
||||
case BlendFactor.SrcAlphaGl:
|
||||
return All.SrcAlpha;
|
||||
case BlendFactor.OneMinusSrcAlpha:
|
||||
case BlendFactor.OneMinusSrcAlphaGl:
|
||||
return All.OneMinusSrcAlpha;
|
||||
case BlendFactor.DstAlpha:
|
||||
case BlendFactor.DstAlphaGl:
|
||||
return All.DstAlpha;
|
||||
case BlendFactor.OneMinusDstAlpha:
|
||||
case BlendFactor.OneMinusDstAlphaGl:
|
||||
return All.OneMinusDstAlpha;
|
||||
case BlendFactor.DstColor:
|
||||
case BlendFactor.DstColorGl:
|
||||
return All.DstColor;
|
||||
case BlendFactor.OneMinusDstColor:
|
||||
case BlendFactor.OneMinusDstColorGl:
|
||||
return All.OneMinusDstColor;
|
||||
case BlendFactor.SrcAlphaSaturate:
|
||||
case BlendFactor.SrcAlphaSaturateGl:
|
||||
return All.SrcAlphaSaturate;
|
||||
case BlendFactor.Src1Color:
|
||||
case BlendFactor.Src1ColorGl:
|
||||
return All.Src1Color;
|
||||
case BlendFactor.OneMinusSrc1Color:
|
||||
case BlendFactor.OneMinusSrc1ColorGl:
|
||||
return All.OneMinusSrc1Color;
|
||||
case BlendFactor.Src1Alpha:
|
||||
case BlendFactor.Src1AlphaGl:
|
||||
return All.Src1Alpha;
|
||||
case BlendFactor.OneMinusSrc1Alpha:
|
||||
case BlendFactor.OneMinusSrc1AlphaGl:
|
||||
return All.OneMinusSrc1Alpha;
|
||||
case BlendFactor.ConstantColor:
|
||||
return All.ConstantColor;
|
||||
case BlendFactor.OneMinusConstantColor:
|
||||
return All.OneMinusConstantColor;
|
||||
case BlendFactor.ConstantAlpha:
|
||||
return All.ConstantAlpha;
|
||||
case BlendFactor.OneMinusConstantAlpha:
|
||||
return All.OneMinusConstantAlpha;
|
||||
}
|
||||
|
||||
return All.Zero;
|
||||
|
@ -10,11 +10,21 @@ namespace Ryujinx.Graphics.OpenGL
|
||||
{
|
||||
switch (op)
|
||||
{
|
||||
case BlendOp.Add: return BlendEquationMode.FuncAdd;
|
||||
case BlendOp.Subtract: return BlendEquationMode.FuncSubtract;
|
||||
case BlendOp.ReverseSubtract: return BlendEquationMode.FuncReverseSubtract;
|
||||
case BlendOp.Minimum: return BlendEquationMode.Min;
|
||||
case BlendOp.Maximum: return BlendEquationMode.Max;
|
||||
case BlendOp.Add:
|
||||
case BlendOp.AddGl:
|
||||
return BlendEquationMode.FuncAdd;
|
||||
case BlendOp.Subtract:
|
||||
case BlendOp.SubtractGl:
|
||||
return BlendEquationMode.FuncSubtract;
|
||||
case BlendOp.ReverseSubtract:
|
||||
case BlendOp.ReverseSubtractGl:
|
||||
return BlendEquationMode.FuncReverseSubtract;
|
||||
case BlendOp.Minimum:
|
||||
case BlendOp.MinimumGl:
|
||||
return BlendEquationMode.Min;
|
||||
case BlendOp.Maximum:
|
||||
case BlendOp.MaximumGl:
|
||||
return BlendEquationMode.Max;
|
||||
}
|
||||
|
||||
return BlendEquationMode.FuncAdd;
|
||||
|
@ -1,6 +1,5 @@
|
||||
using OpenTK.Graphics.OpenGL;
|
||||
using Ryujinx.Graphics.GAL;
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.Graphics.OpenGL
|
||||
{
|
||||
@ -10,19 +9,33 @@ namespace Ryujinx.Graphics.OpenGL
|
||||
{
|
||||
switch (op)
|
||||
{
|
||||
case CompareOp.Never: return All.Never;
|
||||
case CompareOp.Less: return All.Less;
|
||||
case CompareOp.Equal: return All.Equal;
|
||||
case CompareOp.LessOrEqual: return All.Lequal;
|
||||
case CompareOp.Greater: return All.Greater;
|
||||
case CompareOp.NotEqual: return All.Notequal;
|
||||
case CompareOp.GreaterOrEqual: return All.Gequal;
|
||||
case CompareOp.Always: return All.Always;
|
||||
case CompareOp.Never:
|
||||
case CompareOp.NeverGl:
|
||||
return All.Never;
|
||||
case CompareOp.Less:
|
||||
case CompareOp.LessGl:
|
||||
return All.Less;
|
||||
case CompareOp.Equal:
|
||||
case CompareOp.EqualGl:
|
||||
return All.Equal;
|
||||
case CompareOp.LessOrEqual:
|
||||
case CompareOp.LessOrEqualGl:
|
||||
return All.Lequal;
|
||||
case CompareOp.Greater:
|
||||
case CompareOp.GreaterGl:
|
||||
return All.Greater;
|
||||
case CompareOp.NotEqual:
|
||||
case CompareOp.NotEqualGl:
|
||||
return All.Notequal;
|
||||
case CompareOp.GreaterOrEqual:
|
||||
case CompareOp.GreaterOrEqualGl:
|
||||
return All.Gequal;
|
||||
case CompareOp.Always:
|
||||
case CompareOp.AlwaysGl:
|
||||
return All.Always;
|
||||
}
|
||||
|
||||
return All.Never;
|
||||
|
||||
throw new ArgumentException($"Invalid compare operation \"{op}\".");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ namespace Ryujinx.Graphics.OpenGL
|
||||
case MagFilter.Linear: return TextureMagFilter.Linear;
|
||||
}
|
||||
|
||||
throw new ArgumentException($"Invalid filter \"{filter}\".");
|
||||
return TextureMagFilter.Nearest;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,7 +18,7 @@ namespace Ryujinx.Graphics.OpenGL
|
||||
case MinFilter.LinearMipmapLinear: return TextureMinFilter.LinearMipmapLinear;
|
||||
}
|
||||
|
||||
throw new ArgumentException($"Invalid filter \"{filter}\".");
|
||||
return TextureMinFilter.Nearest;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user