IGalRasterizer.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using System;
  2. namespace Ryujinx.Graphics.Gal
  3. {
  4. public interface IGalRasterizer
  5. {
  6. void LockCaches();
  7. void UnlockCaches();
  8. void ClearBuffers(GalClearBufferFlags Flags);
  9. bool IsVboCached(long Key, long DataSize);
  10. bool IsIboCached(long Key, long DataSize);
  11. void SetFrontFace(GalFrontFace FrontFace);
  12. void EnableCullFace();
  13. void DisableCullFace();
  14. void SetCullFace(GalCullFace CullFace);
  15. void EnableDepthTest();
  16. void DisableDepthTest();
  17. void SetDepthFunction(GalComparisonOp Func);
  18. void SetClearDepth(float Depth);
  19. void EnableStencilTest();
  20. void DisableStencilTest();
  21. void SetStencilFunction(bool IsFrontFace, GalComparisonOp Func, int Ref, int Mask);
  22. void SetStencilOp(bool IsFrontFace, GalStencilOp Fail, GalStencilOp ZFail, GalStencilOp ZPass);
  23. void SetStencilMask(bool IsFrontFace, int Mask);
  24. void SetClearStencil(int Stencil);
  25. void EnablePrimitiveRestart();
  26. void DisablePrimitiveRestart();
  27. void SetPrimitiveRestartIndex(uint Index);
  28. void CreateVbo(long Key, int DataSize, IntPtr HostAddress);
  29. void CreateIbo(long Key, int DataSize, IntPtr HostAddress);
  30. void SetVertexArray(int Stride, long VboKey, GalVertexAttrib[] Attribs);
  31. void SetIndexArray(int Size, GalIndexFormat Format);
  32. void DrawArrays(int First, int PrimCount, GalPrimitiveType PrimType);
  33. void DrawElements(long IboKey, int First, int VertexBase, GalPrimitiveType PrimType);
  34. }
  35. }