Dashboard/Quik/OpenGL/GraphicsException.cs

46 lines
1.3 KiB
C#

using System;
using static Quik.OpenGL.GLEnum;
namespace Quik.OpenGL
{
[System.Serializable]
public class GraphicsException : System.Exception
{
public GraphicsException()
{
AddExtraData();
}
public GraphicsException(string message) : base(message)
{
AddExtraData();
}
public GraphicsException(string message, System.Exception inner) : base(message, inner)
{
AddExtraData();
}
protected GraphicsException(
System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context) : base(info, context)
{
AddExtraData();
}
private void AddExtraData()
{
GL.Get(GL_MAJOR_VERSION, out int major);
GL.Get(GL_MINOR_VERSION, out int minor);
string version = GL.GetString(GL_VERSION);
string vendor = GL.GetString(GL_VENDOR);
string renderer = GL.GetString(GL_RENDERER);
Data.Add("OpenGL Version", new Version(major, minor));
Data.Add("OpenGL Version String", version);
Data.Add("OpenGL Vendor", vendor);
Data.Add("OpenGL Renderer", renderer);
}
}
}