From 1876b346fea647e8284a66bb6d62c38801035cff Mon Sep 17 00:00:00 2001 From: gdk Date: Sun, 13 Oct 2019 03:02:07 -0300 Subject: Initial work --- Ryujinx.Graphics.OpenGL/Debugger.cs | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Ryujinx.Graphics.OpenGL/Debugger.cs (limited to 'Ryujinx.Graphics.OpenGL/Debugger.cs') 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); + } + } +} -- cgit v1.2.3