static void MainViewport_RenderUI() { //configure cursor file name EngineApp.SystemCursorFileName = "Base\\UI\\Cursors\\DefaultSystem.cur"; //!!!! //Draw UI controls MainViewport.UIContainer.PerformRenderUI(MainViewport.CanvasRenderer); // Process screen messages. ScreenMessages.PerformRenderUI(MainViewport); //viewport statistics if (DisplayViewportStatistics) { var statistics = MainViewport.RenderingContext?.UpdateStatisticsPrevious; if (statistics != null) { var lines = new List <string>(); lines.Add("FPS: " + statistics.FPS.ToString("F1")); lines.Add("Triangles: " + statistics.Triangles.ToString()); lines.Add("Lines: " + statistics.Lines.ToString()); lines.Add("Draw calls: " + statistics.DrawCalls.ToString()); lines.Add("Render targets: " + statistics.RenderTargets.ToString()); lines.Add("Dynamic textures: " + statistics.DynamicTextures.ToString()); lines.Add("Lights: " + statistics.Lights.ToString()); lines.Add("Reflection probes: " + statistics.ReflectionProbes.ToString()); var renderer = MainViewport.CanvasRenderer; var fontSize = renderer.DefaultFontSize; var offset = new Vector2(fontSize * renderer.AspectRatioInv * 0.8, fontSize * 0.6); CanvasRendererUtility.AddTextLinesWithShadow(MainViewport, null, fontSize, lines, new Rectangle(offset.X, offset.Y, 1, 1), EHorizontalAlignment.Left, EVerticalAlignment.Top, new ColorValue(1, 1, 1)); } } //Engine console EngineConsole.PerformRenderUI(); }