public static void Reshape(int width, int height) { //Console.WriteLine("Reshape: {0}x{1}", width, height); if (width <= 0) { width = 1; } if (height <= 0) { height = 1; } ConsoleVarManager.SetOrCreate("ScreenWidth", width.ToString(), 0); ConsoleVarManager.SetOrCreate("ScreenHeight", height.ToString(), 0); ConsoleManager.Init(); SetupGL(); if (ConsoleManager.IsOpen) { GL.Viewport(0, 0, width, height); GL.MatrixMode(GL.GL_PROJECTION); GL.LoadIdentity(); GL.Ortho(0, width, height, 0, -4096, 4096); GL.MatrixMode(GL.GL_MODELVIEW); GL.LoadIdentity(); } else { if (ConsoleVarManager.GetValueToByte("DemoFreeglut") == 1) { float ratio = 0; float ortho = 30; GL.Viewport(0, 0, width, height); GL.MatrixMode(GL.GL_PROJECTION); GL.LoadIdentity(); if (width >= height) { ratio = (float)width / (float)height; GL.Ortho(-ortho * ratio, ortho * ratio, -ortho, ortho, -ortho, ortho); } else { ratio = (float)height / (float)width; GL.Ortho(-ortho, ortho, -ortho * ratio, ortho * ratio, -ortho, ortho); } GL.MatrixMode(GL.GL_MODELVIEW); GL.LoadIdentity(); } if (ConsoleVarManager.GetValueToByte("DemoCubemapping") == 1) { GL.Viewport(0, 0, width, height); // Set the viewport for the OpenGL window GL.MatrixMode(GL.GL_PROJECTION); GL.LoadIdentity(); GLU.Perspective(45.0, (float)width / (float)height, 1.0, 100.0); // Do the perspective calculations. Last value = max clipping depth GL.MatrixMode(GL.GL_MODELVIEW); GL.LoadIdentity(); } if (ConsoleVarManager.GetValueToByte("DemoGUI") == 1) { GL.Viewport(0, 0, width, height); GL.MatrixMode(GL.GL_PROJECTION); GL.LoadIdentity(); GL.Ortho(0, width, height, 0, -4096, 4096); GL.MatrixMode(GL.GL_MODELVIEW); GL.LoadIdentity(); } } }