void Render() { ConsoleScreen.SetDotAsSeparator(); RollerEvents(); UserInputThread(); // main render cycle using (var loop = new X11.MessageLoop()) { loop.OnKeyPress += (key) => { if (KeyToEvent(key, true)) { processEvent.Set(); } }; loop.OnKeyRelease += (key) => { if (key == X11.Key.Escape) { isStopped.Set(); } else { KeyToEvent(key, false); } }; loop.OnConfigure += () => renderScene.Set(); loop.OnEnterLeave += (t) => renderScene.Set(); loop.OnExpose += () => renderScene.Set(); loop.OnFocus += (t) => renderScene.Set(); loop.OnProperty += (t) => renderScene.Set(); loop.OnVisibility += () => renderScene.Set(); while (!stopped) { renderScene.Reset(); Draw(); Thread.Sleep(timer2); renderScene.WaitOne(); } } }