aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics/Gal/IGalRasterizer.cs
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2018-07-05 15:47:29 -0300
committergdkchan <gab.dark.100@gmail.com>2018-07-05 15:47:29 -0300
commit97ca974213ec9564ed4a9c57e998ca726dbbb64f (patch)
tree5daf598d267d3ce05f3ef342621e7f93536fa554 /Ryujinx.Graphics/Gal/IGalRasterizer.cs
parentc99b2884e4eb9adfb5b893ee84d7678262d19b06 (diff)
Implement some GPU features (#209)
* Implement stencil testing * Implement depth testing * Implement face culling * Implement front face * Comparison functions now take OGL enums too * Fix front facing when flipping was used * Add depth and stencil clear values
Diffstat (limited to 'Ryujinx.Graphics/Gal/IGalRasterizer.cs')
-rw-r--r--Ryujinx.Graphics/Gal/IGalRasterizer.cs18
1 files changed, 18 insertions, 0 deletions
diff --git a/Ryujinx.Graphics/Gal/IGalRasterizer.cs b/Ryujinx.Graphics/Gal/IGalRasterizer.cs
index e0469382..586eae6b 100644
--- a/Ryujinx.Graphics/Gal/IGalRasterizer.cs
+++ b/Ryujinx.Graphics/Gal/IGalRasterizer.cs
@@ -8,16 +8,34 @@ namespace Ryujinx.Graphics.Gal
bool IsIboCached(long Key, long DataSize);
+ void SetFrontFace(GalFrontFace FrontFace);
+
void EnableCullFace();
void DisableCullFace();
+ void SetCullFace(GalCullFace CullFace);
+
void EnableDepthTest();
void DisableDepthTest();
void SetDepthFunction(GalComparisonOp Func);
+ void SetClearDepth(float Depth);
+
+ void EnableStencilTest();
+
+ void DisableStencilTest();
+
+ void SetStencilFunction(bool IsFrontFace, GalComparisonOp Func, int Ref, int Mask);
+
+ void SetStencilOp(bool IsFrontFace, GalStencilOp Fail, GalStencilOp ZFail, GalStencilOp ZPass);
+
+ void SetStencilMask(bool IsFrontFace, int Mask);
+
+ void SetClearStencil(int Stencil);
+
void CreateVbo(long Key, byte[] Buffer);
void CreateIbo(long Key, byte[] Buffer);