From 05575f9ea843fffa0980acc12a752ec408c17677 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sun, 3 Dec 2017 22:08:55 +0100 Subject: [PATCH] Display # of layers next to FPS counter. --- .../Rendering/DeferredRenderer.cs | 1 + .../Rendering/ImmediateRenderer.cs | 2 +- src/Avalonia.Visuals/Rendering/RendererBase.cs | 17 +++++++++++------ 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs b/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs index f7befa646a..599b224b63 100644 --- a/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs +++ b/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs @@ -354,6 +354,7 @@ namespace Avalonia.Rendering if (DrawFps) { RenderFps(context, clientRect, true); + RenderFps(context, clientRect, scene.Layers.Count); } } diff --git a/src/Avalonia.Visuals/Rendering/ImmediateRenderer.cs b/src/Avalonia.Visuals/Rendering/ImmediateRenderer.cs index 2d5a864089..84313f0906 100644 --- a/src/Avalonia.Visuals/Rendering/ImmediateRenderer.cs +++ b/src/Avalonia.Visuals/Rendering/ImmediateRenderer.cs @@ -69,7 +69,7 @@ namespace Avalonia.Rendering if (DrawFps) { - RenderFps(context.PlatformImpl, _root.Bounds, true); + RenderFps(context.PlatformImpl, _root.Bounds, null); } } } diff --git a/src/Avalonia.Visuals/Rendering/RendererBase.cs b/src/Avalonia.Visuals/Rendering/RendererBase.cs index 707b31998a..eac362e997 100644 --- a/src/Avalonia.Visuals/Rendering/RendererBase.cs +++ b/src/Avalonia.Visuals/Rendering/RendererBase.cs @@ -22,15 +22,12 @@ namespace Avalonia.Rendering }; } - protected void RenderFps(IDrawingContextImpl context, Rect clientRect, bool incrementFrameCount) + protected void RenderFps(IDrawingContextImpl context, Rect clientRect, int? layerCount) { var now = _stopwatch.Elapsed; var elapsed = now - _lastFpsUpdate; - if (incrementFrameCount) - { - ++_framesThisSecond; - } + ++_framesThisSecond; if (elapsed.TotalSeconds > 1) { @@ -39,7 +36,15 @@ namespace Avalonia.Rendering _lastFpsUpdate = now; } - _fpsText.Text = string.Format("FPS: {0:000}", _fps); + if (layerCount.HasValue) + { + _fpsText.Text = string.Format("Layers: {0} FPS: {1:000}", layerCount, _fps); + } + else + { + _fpsText.Text = string.Format("FPS: {0:000}", _fps); + } + var size = _fpsText.Measure(); var rect = new Rect(clientRect.Right - size.Width, 0, size.Width, size.Height);