Implemented toggleable FPS counter. (#5409)
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
@@ -35,6 +35,7 @@
|
|||||||
Text="{Loc 'ui-options-vp-integer-scaling'}"
|
Text="{Loc 'ui-options-vp-integer-scaling'}"
|
||||||
ToolTip="{Loc 'ui-options-vp-integer-scaling-tooltip'}" />
|
ToolTip="{Loc 'ui-options-vp-integer-scaling-tooltip'}" />
|
||||||
<CheckBox Name="ViewportLowResCheckBox" Text="{Loc 'ui-options-vp-low-res'}" />
|
<CheckBox Name="ViewportLowResCheckBox" Text="{Loc 'ui-options-vp-low-res'}" />
|
||||||
|
<CheckBox Name="FpsCounterCheckBox" Text="{Loc 'ui-options-fps-counter'}" />
|
||||||
</BoxContainer>
|
</BoxContainer>
|
||||||
<hudUi:StripeBack HasBottomEdge="False" HasMargins="False">
|
<hudUi:StripeBack HasBottomEdge="False" HasMargins="False">
|
||||||
<Button Name="ApplyButton"
|
<Button Name="ApplyButton"
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ namespace Content.Client.EscapeMenu.UI.Tabs
|
|||||||
ShowHeldItemCheckBox.OnToggled += OnCheckBoxToggled;
|
ShowHeldItemCheckBox.OnToggled += OnCheckBoxToggled;
|
||||||
IntegerScalingCheckBox.OnToggled += OnCheckBoxToggled;
|
IntegerScalingCheckBox.OnToggled += OnCheckBoxToggled;
|
||||||
ViewportLowResCheckBox.OnToggled += OnCheckBoxToggled;
|
ViewportLowResCheckBox.OnToggled += OnCheckBoxToggled;
|
||||||
|
FpsCounterCheckBox.OnToggled += OnCheckBoxToggled;
|
||||||
ApplyButton.OnPressed += OnApplyButtonPressed;
|
ApplyButton.OnPressed += OnApplyButtonPressed;
|
||||||
VSyncCheckBox.Pressed = _cfg.GetCVar(CVars.DisplayVSync);
|
VSyncCheckBox.Pressed = _cfg.GetCVar(CVars.DisplayVSync);
|
||||||
FullscreenCheckBox.Pressed = ConfigIsFullscreen;
|
FullscreenCheckBox.Pressed = ConfigIsFullscreen;
|
||||||
@@ -86,6 +87,7 @@ namespace Content.Client.EscapeMenu.UI.Tabs
|
|||||||
ViewportStretchCheckBox.Pressed = _cfg.GetCVar(CCVars.ViewportStretch);
|
ViewportStretchCheckBox.Pressed = _cfg.GetCVar(CCVars.ViewportStretch);
|
||||||
IntegerScalingCheckBox.Pressed = _cfg.GetCVar(CCVars.ViewportSnapToleranceMargin) != 0;
|
IntegerScalingCheckBox.Pressed = _cfg.GetCVar(CCVars.ViewportSnapToleranceMargin) != 0;
|
||||||
ViewportLowResCheckBox.Pressed = !_cfg.GetCVar(CCVars.ViewportScaleRender);
|
ViewportLowResCheckBox.Pressed = !_cfg.GetCVar(CCVars.ViewportScaleRender);
|
||||||
|
FpsCounterCheckBox.Pressed = _cfg.GetCVar(CCVars.HudFpsCounterVisible);
|
||||||
ShowHeldItemCheckBox.Pressed = _cfg.GetCVar(CCVars.HudHeldItemShow);
|
ShowHeldItemCheckBox.Pressed = _cfg.GetCVar(CCVars.HudHeldItemShow);
|
||||||
|
|
||||||
UpdateViewportScale();
|
UpdateViewportScale();
|
||||||
@@ -122,6 +124,7 @@ namespace Content.Client.EscapeMenu.UI.Tabs
|
|||||||
IntegerScalingCheckBox.Pressed ? CCVars.ViewportSnapToleranceMargin.DefaultValue : 0);
|
IntegerScalingCheckBox.Pressed ? CCVars.ViewportSnapToleranceMargin.DefaultValue : 0);
|
||||||
_cfg.SetCVar(CCVars.ViewportScaleRender, !ViewportLowResCheckBox.Pressed);
|
_cfg.SetCVar(CCVars.ViewportScaleRender, !ViewportLowResCheckBox.Pressed);
|
||||||
_cfg.SetCVar(CCVars.HudHeldItemShow, ShowHeldItemCheckBox.Pressed);
|
_cfg.SetCVar(CCVars.HudHeldItemShow, ShowHeldItemCheckBox.Pressed);
|
||||||
|
_cfg.SetCVar(CCVars.HudFpsCounterVisible, FpsCounterCheckBox.Pressed);
|
||||||
_cfg.SaveToFile();
|
_cfg.SaveToFile();
|
||||||
UpdateApplyButton();
|
UpdateApplyButton();
|
||||||
}
|
}
|
||||||
@@ -149,6 +152,7 @@ namespace Content.Client.EscapeMenu.UI.Tabs
|
|||||||
var isIntegerScalingSame = IntegerScalingCheckBox.Pressed == (_cfg.GetCVar(CCVars.ViewportSnapToleranceMargin) != 0);
|
var isIntegerScalingSame = IntegerScalingCheckBox.Pressed == (_cfg.GetCVar(CCVars.ViewportSnapToleranceMargin) != 0);
|
||||||
var isVPResSame = ViewportLowResCheckBox.Pressed == !_cfg.GetCVar(CCVars.ViewportScaleRender);
|
var isVPResSame = ViewportLowResCheckBox.Pressed == !_cfg.GetCVar(CCVars.ViewportScaleRender);
|
||||||
var isShowHeldItemSame = ShowHeldItemCheckBox.Pressed == _cfg.GetCVar(CCVars.HudHeldItemShow);
|
var isShowHeldItemSame = ShowHeldItemCheckBox.Pressed == _cfg.GetCVar(CCVars.HudHeldItemShow);
|
||||||
|
var isFpsCounterVisibleSame = FpsCounterCheckBox.Pressed == _cfg.GetCVar(CCVars.HudFpsCounterVisible);
|
||||||
|
|
||||||
ApplyButton.Disabled = isVSyncSame &&
|
ApplyButton.Disabled = isVSyncSame &&
|
||||||
isFullscreenSame &&
|
isFullscreenSame &&
|
||||||
@@ -159,7 +163,8 @@ namespace Content.Client.EscapeMenu.UI.Tabs
|
|||||||
isIntegerScalingSame &&
|
isIntegerScalingSame &&
|
||||||
isVPResSame &&
|
isVPResSame &&
|
||||||
isHudThemeSame &&
|
isHudThemeSame &&
|
||||||
isShowHeldItemSame;
|
isShowHeldItemSame &&
|
||||||
|
isFpsCounterVisibleSame;
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool ConfigIsFullscreen =>
|
private bool ConfigIsFullscreen =>
|
||||||
|
|||||||
@@ -8,10 +8,12 @@ using Content.Client.HUD;
|
|||||||
using Content.Client.HUD.UI;
|
using Content.Client.HUD.UI;
|
||||||
using Content.Client.Voting;
|
using Content.Client.Voting;
|
||||||
using Content.Shared.Chat;
|
using Content.Shared.Chat;
|
||||||
|
using Content.Shared.CCVar;
|
||||||
using Robust.Client.Graphics;
|
using Robust.Client.Graphics;
|
||||||
using Robust.Client.Input;
|
using Robust.Client.Input;
|
||||||
using Robust.Client.UserInterface;
|
using Robust.Client.UserInterface;
|
||||||
using Robust.Client.UserInterface.Controls;
|
using Robust.Client.UserInterface.Controls;
|
||||||
|
using Robust.Client.UserInterface.CustomControls;
|
||||||
using Robust.Shared.Configuration;
|
using Robust.Shared.Configuration;
|
||||||
using Robust.Shared.IoC;
|
using Robust.Shared.IoC;
|
||||||
using Robust.Shared.Maths;
|
using Robust.Shared.Maths;
|
||||||
@@ -31,10 +33,14 @@ namespace Content.Client.Viewport
|
|||||||
[Dependency] private readonly IVoteManager _voteManager = default!;
|
[Dependency] private readonly IVoteManager _voteManager = default!;
|
||||||
[Dependency] private readonly IEyeManager _eyeManager = default!;
|
[Dependency] private readonly IEyeManager _eyeManager = default!;
|
||||||
[Dependency] private readonly IOverlayManager _overlayManager = default!;
|
[Dependency] private readonly IOverlayManager _overlayManager = default!;
|
||||||
|
[Dependency] private readonly IGameTiming _gameTiming = default!;
|
||||||
|
[Dependency] private readonly IConfigurationManager _configurationManager = default!;
|
||||||
|
|
||||||
[ViewVariables] private ChatBox? _gameChat;
|
[ViewVariables] private ChatBox? _gameChat;
|
||||||
private ConstructionMenuPresenter? _constructionMenu;
|
private ConstructionMenuPresenter? _constructionMenu;
|
||||||
|
|
||||||
|
private FpsCounter _fpsCounter = default!;
|
||||||
|
|
||||||
public MainViewport Viewport { get; private set; } = default!;
|
public MainViewport Viewport { get; private set; } = default!;
|
||||||
|
|
||||||
public override void Startup()
|
public override void Startup()
|
||||||
@@ -74,6 +80,11 @@ namespace Content.Client.Viewport
|
|||||||
_eyeManager.MainViewport = Viewport.Viewport;
|
_eyeManager.MainViewport = Viewport.Viewport;
|
||||||
|
|
||||||
_overlayManager.AddOverlay(new ShowHandItemOverlay());
|
_overlayManager.AddOverlay(new ShowHandItemOverlay());
|
||||||
|
|
||||||
|
_fpsCounter = new FpsCounter(_gameTiming);
|
||||||
|
_userInterfaceManager.StateRoot.AddChild(_fpsCounter);
|
||||||
|
_fpsCounter.Visible = _configurationManager.GetCVar(CCVars.HudFpsCounterVisible);
|
||||||
|
_configurationManager.OnValueChanged(CCVars.HudFpsCounterVisible, (show) => { _fpsCounter.Visible = show; });
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Shutdown()
|
public override void Shutdown()
|
||||||
@@ -88,6 +99,7 @@ namespace Content.Client.Viewport
|
|||||||
_gameHud.RootControl.Orphan();
|
_gameHud.RootControl.Orphan();
|
||||||
// Clear viewport to some fallback, whatever.
|
// Clear viewport to some fallback, whatever.
|
||||||
_eyeManager.MainViewport = _userInterfaceManager.MainViewport;
|
_eyeManager.MainViewport = _userInterfaceManager.MainViewport;
|
||||||
|
_fpsCounter.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -262,6 +262,8 @@ namespace Content.Shared.CCVar
|
|||||||
public static readonly CVarDef<float> HudHeldItemOffset =
|
public static readonly CVarDef<float> HudHeldItemOffset =
|
||||||
CVarDef.Create("hud.held_item_offset", 28f, CVar.ARCHIVE | CVar.CLIENTONLY);
|
CVarDef.Create("hud.held_item_offset", 28f, CVar.ARCHIVE | CVar.CLIENTONLY);
|
||||||
|
|
||||||
|
public static readonly CVarDef<bool> HudFpsCounterVisible =
|
||||||
|
CVarDef.Create("hud.fps_counter_visible", false, CVar.CLIENTONLY | CVar.ARCHIVE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* AI
|
* AI
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ ui-options-vp-integer-scaling-tooltip = If this option is enabled, the viewport
|
|||||||
means that black bars appear at the top/bottom of the screen or that part
|
means that black bars appear at the top/bottom of the screen or that part
|
||||||
of the viewport is not visible.
|
of the viewport is not visible.
|
||||||
ui-options-vp-low-res = Low-resolution viewport
|
ui-options-vp-low-res = Low-resolution viewport
|
||||||
|
ui-options-fps-counter = Show FPS counter
|
||||||
|
|
||||||
## Controls menu
|
## Controls menu
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user