1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-12 05:27:40 +08:00
osu-lazer/osu.Game/Overlays/Settings/Sections/Debug/GCSettings.cs

51 lines
1.7 KiB
C#
Raw Normal View History

// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
2018-04-13 17:19:50 +08:00
using System;
using System.Runtime;
using osu.Framework.Allocation;
2019-02-21 18:04:31 +08:00
using osu.Framework.Bindables;
2018-04-13 17:19:50 +08:00
using osu.Framework.Configuration;
using osu.Framework.Graphics;
namespace osu.Game.Overlays.Settings.Sections.Debug
{
public class GCSettings : SettingsSubsection
{
protected override string Header => "Garbage Collector";
2018-08-22 11:02:14 +08:00
private readonly Bindable<LatencyMode> latencyMode = new Bindable<LatencyMode>();
private Bindable<GCLatencyMode> configLatencyMode;
2018-04-13 17:19:50 +08:00
[BackgroundDependencyLoader]
private void load(FrameworkDebugConfigManager config)
{
Children = new Drawable[]
{
2018-08-22 11:02:14 +08:00
new SettingsEnumDropdown<LatencyMode>
2018-04-13 17:19:50 +08:00
{
LabelText = "Active mode",
2018-08-22 11:02:14 +08:00
Bindable = latencyMode
2018-04-13 17:19:50 +08:00
},
new SettingsButton
{
Text = "Force garbage collection",
Action = GC.Collect
},
};
2018-08-22 11:02:14 +08:00
configLatencyMode = config.GetBindable<GCLatencyMode>(DebugSetting.ActiveGCMode);
2019-02-21 17:56:34 +08:00
configLatencyMode.BindValueChanged(e => latencyMode.Value = (LatencyMode)e.NewValue, true);
latencyMode.BindValueChanged(e => configLatencyMode.Value = (GCLatencyMode)e.NewValue);
2018-08-22 11:02:14 +08:00
}
private enum LatencyMode
{
Batch = GCLatencyMode.Batch,
Interactive = GCLatencyMode.Interactive,
LowLatency = GCLatencyMode.LowLatency,
SustainedLowLatency = GCLatencyMode.SustainedLowLatency
2018-04-13 17:19:50 +08:00
}
}
}