diff options
author | gdk <gab.dark.100@gmail.com> | 2019-10-13 03:02:07 -0300 |
---|---|---|
committer | Thog <thog@protonmail.com> | 2020-01-09 02:13:00 +0100 |
commit | 1876b346fea647e8284a66bb6d62c38801035cff (patch) | |
tree | 6eeff094298cda84d1613dc5ec0691e51d7b35f1 /Ryujinx.Graphics.OpenGL/Debugger.cs | |
parent | f617fb542a0e3d36012d77a4b5acbde7b08902f2 (diff) |
Initial work
Diffstat (limited to 'Ryujinx.Graphics.OpenGL/Debugger.cs')
-rw-r--r-- | Ryujinx.Graphics.OpenGL/Debugger.cs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.OpenGL/Debugger.cs b/Ryujinx.Graphics.OpenGL/Debugger.cs new file mode 100644 index 00000000..9da98ae1 --- /dev/null +++ b/Ryujinx.Graphics.OpenGL/Debugger.cs @@ -0,0 +1,43 @@ +using OpenTK.Graphics.OpenGL; +using System; +using System.Runtime.InteropServices; + +namespace Ryujinx.Graphics.OpenGL +{ + public static class Debugger + { + private static DebugProc _debugCallback; + + public static void Initialize() + { + GL.Enable(EnableCap.DebugOutputSynchronous); + + int[] array = null; + + GL.DebugMessageControl(DebugSourceControl.DontCare, DebugTypeControl.DontCare, DebugSeverityControl.DontCare, 0, array, true); + + _debugCallback = PrintDbg; + + GL.DebugMessageCallback(_debugCallback, IntPtr.Zero); + } + + private static void PrintDbg( + DebugSource source, + DebugType type, + int id, + DebugSeverity severity, + int length, + IntPtr message, + IntPtr userParam) + { + string msg = Marshal.PtrToStringAnsi(message); + + if (type == DebugType.DebugTypeError && !msg.Contains("link")) + { + throw new Exception(msg); + } + + System.Console.WriteLine("GL message: " + source + " " + type + " " + severity + " " + msg); + } + } +} |