Files

35 lines
901 B
C#

using Robust.Client.UserInterface.Controls;
using Robust.Shared.Maths;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
namespace Robust.Client.UserInterface.CustomControls
{
public sealed class FpsCounter : Label
{
private readonly IGameTiming _gameTiming;
private readonly char[] _textBuffer = new char[16];
public FpsCounter(IGameTiming gameTiming)
{
_gameTiming = gameTiming;
FontColorShadowOverride = Color.Black;
ShadowOffsetXOverride = 1;
ShadowOffsetYOverride = 1;
}
protected override void FrameUpdate(FrameEventArgs args)
{
if (!VisibleInTree)
{
return;
}
var fps = _gameTiming.FramesPerSecondAvg;
TextMemory = FormatHelpers.FormatIntoMem(_textBuffer, $"FPS: {fps:N0}");
}
}
}