protected override void ApplicationStarted() { if (GLFW.Init() == 0) { GLFW.GetError(out string error); throw new Exception($"GLFW Error: {error}"); } // OpenGL Setup if (App.Graphics is IGraphicsOpenGL) { // macOS requires versions to be set to 3.2 if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) { GLFW.WindowHint(GLFW_Enum.CONTEXT_VERSION_MAJOR, 3); GLFW.WindowHint(GLFW_Enum.CONTEXT_VERSION_MINOR, 2); GLFW.WindowHint(GLFW_Enum.OPENGL_PROFILE, 0x00032001); GLFW.WindowHint(GLFW_Enum.OPENGL_FORWARD_COMPAT, true); } } else { GLFW.WindowHint(GLFW_Enum.CLIENT_API, (int)GLFW_Enum.NO_API); } // Various constant Window Hints GLFW.WindowHint(GLFW_Enum.DOUBLEBUFFER, true); GLFW.WindowHint(GLFW_Enum.DEPTH_BITS, 24); GLFW.WindowHint(GLFW_Enum.STENCIL_BITS, 8); // Monitors unsafe { var monitorPtrs = GLFW.GetMonitors(out int count); for (int i = 0; i < count; i++) { monitors.Add(new GLFW_Monitor(monitorPtrs[i])); } } // Init Input input.Init(); }