aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.OpenGL/Converters
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2019-12-05 17:34:47 -0300
committerThog <thog@protonmail.com>2020-01-09 02:13:00 +0100
commite25b7c9848b6ec486eb513297b5c536857665c7f (patch)
treec1ccb6c58bed0f7ece835359516330104feb8f4d /Ryujinx.Graphics.OpenGL/Converters
parent6a98c643cabeea25dc42e19fe475a687a034a532 (diff)
Initial support for the guest OpenGL driver (NVIDIA and Nouveau)
Diffstat (limited to 'Ryujinx.Graphics.OpenGL/Converters')
-rw-r--r--Ryujinx.Graphics.OpenGL/Converters/BlendFactorConverter.cs72
-rw-r--r--Ryujinx.Graphics.OpenGL/Converters/BlendOpConverter.cs20
-rw-r--r--Ryujinx.Graphics.OpenGL/Converters/CompareOpConverter.cs35
-rw-r--r--Ryujinx.Graphics.OpenGL/Converters/MagFilterConverter.cs2
-rw-r--r--Ryujinx.Graphics.OpenGL/Converters/MinFilterConverter.cs2
5 files changed, 94 insertions, 37 deletions
diff --git a/Ryujinx.Graphics.OpenGL/Converters/BlendFactorConverter.cs b/Ryujinx.Graphics.OpenGL/Converters/BlendFactorConverter.cs
index 1dc40522..db5099a7 100644
--- a/Ryujinx.Graphics.OpenGL/Converters/BlendFactorConverter.cs
+++ b/Ryujinx.Graphics.OpenGL/Converters/BlendFactorConverter.cs
@@ -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;
diff --git a/Ryujinx.Graphics.OpenGL/Converters/BlendOpConverter.cs b/Ryujinx.Graphics.OpenGL/Converters/BlendOpConverter.cs
index b33a3bf8..66d6a145 100644
--- a/Ryujinx.Graphics.OpenGL/Converters/BlendOpConverter.cs
+++ b/Ryujinx.Graphics.OpenGL/Converters/BlendOpConverter.cs
@@ -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;
diff --git a/Ryujinx.Graphics.OpenGL/Converters/CompareOpConverter.cs b/Ryujinx.Graphics.OpenGL/Converters/CompareOpConverter.cs
index f592735b..a30ca02e 100644
--- a/Ryujinx.Graphics.OpenGL/Converters/CompareOpConverter.cs
+++ b/Ryujinx.Graphics.OpenGL/Converters/CompareOpConverter.cs
@@ -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}\".");
}
}
}
diff --git a/Ryujinx.Graphics.OpenGL/Converters/MagFilterConverter.cs b/Ryujinx.Graphics.OpenGL/Converters/MagFilterConverter.cs
index d86d8014..cb75ee89 100644
--- a/Ryujinx.Graphics.OpenGL/Converters/MagFilterConverter.cs
+++ b/Ryujinx.Graphics.OpenGL/Converters/MagFilterConverter.cs
@@ -14,7 +14,7 @@ namespace Ryujinx.Graphics.OpenGL
case MagFilter.Linear: return TextureMagFilter.Linear;
}
- throw new ArgumentException($"Invalid filter \"{filter}\".");
+ return TextureMagFilter.Nearest;
}
}
}
diff --git a/Ryujinx.Graphics.OpenGL/Converters/MinFilterConverter.cs b/Ryujinx.Graphics.OpenGL/Converters/MinFilterConverter.cs
index 128577f8..01436299 100644
--- a/Ryujinx.Graphics.OpenGL/Converters/MinFilterConverter.cs
+++ b/Ryujinx.Graphics.OpenGL/Converters/MinFilterConverter.cs
@@ -18,7 +18,7 @@ namespace Ryujinx.Graphics.OpenGL
case MinFilter.LinearMipmapLinear: return TextureMinFilter.LinearMipmapLinear;
}
- throw new ArgumentException($"Invalid filter \"{filter}\".");
+ return TextureMinFilter.Nearest;
}
}
}