public void SetupGLControl()
{
RenderingEnabled = false;
if (glControl != null)
glControl.Dispose();
glControl = null;
GLMode = null;
try
{
if (!UseMultiSampling)
{
GLMode = new OpenTK.Graphics.GraphicsMode(OpenTK.DisplayDevice.Default.BitsPerPixel, 24, 8, 0);
}
else
{
for (int aa = 0; aa <= 4; aa += 2)
{
var testMode = new OpenTK.Graphics.GraphicsMode(OpenTK.DisplayDevice.Default.BitsPerPixel, 24, 8, aa);
if (testMode.Samples == aa)
{
GLMode = testMode;
}
}
}
}
catch
{
GLMode = null;
}
try
{
if (GLMode == null)
{
// Try default mode
glControl = new OpenTK.GLControl();
}
else
{
glControl = new OpenTK.GLControl(GLMode);
}
}
catch (Exception ex)
{
Logger.Log(ex.Message, Helpers.LogLevel.Warning, Client);
glControl = null;
}
if (glControl == null)
{
Logger.Log("Failed to initialize OpenGL control, cannot continue", Helpers.LogLevel.Error, Client);
return;
}
Logger.Log("Initializing OpenGL mode: " + GLMode.ToString(), Helpers.LogLevel.Info);
glControl.Paint += glControl_Paint;
glControl.Resize += glControl_Resize;
glControl.MouseDown += glControl_MouseDown;
glControl.MouseUp += glControl_MouseUp;
glControl.MouseMove += glControl_MouseMove;
glControl.MouseWheel += glControl_MouseWheel;
glControl.Load += new EventHandler(glControl_Load);
glControl.Disposed += new EventHandler(glControl_Disposed);
glControl.Dock = DockStyle.Fill;
glControl.VSync = false;
Controls.Add(glControl);
glControl.BringToFront();
}