public static void Main(string[] args) { Engine.AddLogAppender(new ConsoleLogAppender()); var settings = new ApplicationSettings() { DisplayStyle = DisplayStyle.ResizeableWithTitle, //VerticalSynchronization = true }; #if DEBUG //settings.Debug = true; #endif Engine.Run(new Program(), settings); }
public Application(IApplicationLogic logic, ApplicationSettings settings) { m_keys = new bool[0xFF]; m_thread = Thread.CurrentThread; m_actions = new Queue<Action>(); m_logic = logic; m_display = new Display(this, WindowProc, settings.DisplayStyle); GL.Initialize( m_display, settings.DisplayColorBits, settings.DisplayDepthBits, settings.Debug ); GL.SwapInterval(settings.VerticalSynchronization ? 1 : 0); m_synchronizationContext = new ApplicationSynchronizationContext(m_display.Handle); m_stopwatch = new Stopwatch(); }
public static void Run(IApplicationLogic logic, ApplicationSettings settings) { if (m_currentApplication == null) { if (logic == null) throw new ArgumentException("logic"); if (settings == null) throw new ArgumentException("settings"); try { using (m_currentApplication = new Application(logic, settings)) { m_currentApplication.Run(); } } finally { m_currentApplication = null; } } }