public static void TestRendering() { con.SetForegroundColour(ForestGreen); con.Write("Starting...\n"); con.Write(Console.In.GetType()); con.Write('\n'); con.Flush(); var view = Test.CreateView(con); con.UseNewScreenBuffer(); if (_render) { view.Render(); } while (_running) { if (_errorUntil > DateTime.Now.Ticks) { con.SetForegroundColour(_errorColour); int i = 0; foreach (var s in _errorDisplay) { con.SetCurrentPos(con.Height - _errorDisplay.Length + i++, 2); con.Write(s); } } if (!string.IsNullOrEmpty(_currentInput)) { con.SetCurrentPos(con.Height, 1); con.SetForegroundColour(Lime); con.Write('>'); con.SetForegroundColour(White); con.Write(_currentInput); con.Write(' '); con.SetCurrentPos(con.Height + (1 + _currentCursor) / con.Width - (1 + _currentInput.Length) / con.Width, (_currentCursor + 1) % con.Width + 1); if (DateTime.Now.Ticks % 10_000_000 < 5000000) { con.Write('_'); } } con.Flush(); Thread.Sleep(32); } con.UseMainScreenBuffer(); con.Write("Program closing...\n"); con.Flush(); Thread.Sleep(200); }