private void StartOpenGl() { exit = false; Glut.glutInit(); Glut.glutInitDisplayMode(Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH | Glut.GLUT_ALPHA | Glut.GLUT_STENCIL | Glut.GLUT_MULTISAMPLE); // http://www.lighthouse3d.com/cg-topics/glut-and-freeglut/ // Note: glutSetOption is only available with freeglut Glut.glutSetOption(Glut.GLUT_ACTION_ON_WINDOW_CLOSE, Glut.GLUT_ACTION_GLUTMAINLOOP_RETURNS); Glut.glutInitWindowSize(width, height); Glut.glutCreateWindow("OpenGL Test"); Glut.glutIdleFunc(OnRenderFrame); Glut.glutDisplayFunc(OnDisplay); Glut.glutDisplayFunc(OnDisplay); Glut.glutKeyboardFunc(OnKeyboardDown); Glut.glutSpecialFunc(OnSpecialKeyboardDown); Glut.glutKeyboardUpFunc(OnKeyboardUp); Glut.glutSpecialUpFunc(OnSpecialKeyboardUp); Glut.glutCloseFunc(OnClose); Glut.glutReshapeFunc(OnReshape); // add our mouse callbacks for this tutorial Glut.glutMouseFunc(OnMouse); Glut.glutMotionFunc(OnMove); #region GL_VERSION //this will return your version of opengl int major, minor; major = Gl.GetInteger(GetPName.MajorVersion); minor = Gl.GetInteger(GetPName.MinorVersion); GameCore.TheGameCore.RaiseMessage("Major " + major + " Minor " + minor); // Console.WriteLine("Major " + major + " Minor " + minor); //you can also get your GLSL version, although not sure if it varies from the above GameCore.TheGameCore.RaiseMessage("GLSL " + Gl.GetString(StringName.ShadingLanguageVersion)); #endregion Gl.Enable(EnableCap.DepthTest); Gl.Enable(EnableCap.Blend); Gl.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha); RenderObjects.RenderObjects.TheResourceManager = theResourceManager; Camera camera = new Camera(new Vector3(0, 20, 10), Quaternion.Identity); camera.SetDirection(new Vector3(1, -3, -1)); TheGameStatus.TheEnvironment = new Environment(); TheGameStatus.TheCamera = camera; theSceneManager = new SceneManager(TheGameStatus, TheUserInputPlayer, theKeyBindings, theResourceManager, new RenderStatus() { Width = width, Height = height }); theSceneManager.AddCamera(camera); theSceneManager.AddLayer(new RenderLayerSkyBox()); theSceneManager.AddLayer(new RenderLayerGame()); theSceneManager.AddLayer(new RenderLayerMapDrawArrays()); theSceneManager.AddLayer(new RenderLayerHud()); theSceneManager.AddLayer(layerInfo = new RenderLayerTextInfo()); theSceneManager.OnLoad(); watch = Stopwatch.StartNew(); Glut.glutMainLoop(); GameCore.TheGameCore.OnGameEventHandler(new GameEventArgs(GameEventArgs.Types.RendererExited)); }