diff --git a/osu.Game/Localisation/GraphicsSettingsStrings.cs b/osu.Game/Localisation/GraphicsSettingsStrings.cs
index f85cc0f2ae..996a1350eb 100644
--- a/osu.Game/Localisation/GraphicsSettingsStrings.cs
+++ b/osu.Game/Localisation/GraphicsSettingsStrings.cs
@@ -119,6 +119,16 @@ namespace osu.Game.Localisation
///
public static LocalisableString ShowCursorInScreenshots => new TranslatableString(getKey(@"show_cursor_in_screenshots"), @"Show menu cursor in screenshots");
+ ///
+ /// "Video"
+ ///
+ public static LocalisableString VideoHeader => new TranslatableString(getKey(@"video_header"), @"Video");
+
+ ///
+ /// "Use hardware acceleration"
+ ///
+ public static LocalisableString UseHardwareAcceleration => new TranslatableString(getKey(@"use_hardware_acceleration"), @"Use hardware acceleration");
+
private static string getKey(string key) => $"{prefix}:{key}";
}
}
diff --git a/osu.Game/Overlays/Settings/Sections/Graphics/VideoSettings.cs b/osu.Game/Overlays/Settings/Sections/Graphics/VideoSettings.cs
new file mode 100644
index 0000000000..921eab63ed
--- /dev/null
+++ b/osu.Game/Overlays/Settings/Sections/Graphics/VideoSettings.cs
@@ -0,0 +1,43 @@
+// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
+// See the LICENCE file in the repository root for full licence text.
+
+using osu.Framework.Allocation;
+using osu.Framework.Bindables;
+using osu.Framework.Configuration;
+using osu.Framework.Graphics;
+using osu.Framework.Graphics.Video;
+using osu.Framework.Localisation;
+using osu.Game.Localisation;
+
+namespace osu.Game.Overlays.Settings.Sections.Graphics
+{
+ public class VideoSettings : SettingsSubsection
+ {
+ protected override LocalisableString Header => GraphicsSettingsStrings.VideoHeader;
+
+ private Bindable hardwareVideoDecoder;
+ private SettingsCheckbox hwAccelCheckbox;
+
+ [BackgroundDependencyLoader]
+ private void load(FrameworkConfigManager config)
+ {
+ hardwareVideoDecoder = config.GetBindable(FrameworkSetting.HardwareVideoDecoder);
+
+ Children = new Drawable[]
+ {
+ hwAccelCheckbox = new SettingsCheckbox
+ {
+ LabelText = GraphicsSettingsStrings.UseHardwareAcceleration,
+ },
+ };
+
+ hwAccelCheckbox.Current.Default = hardwareVideoDecoder.Default != HardwareVideoDecoder.None;
+ hwAccelCheckbox.Current.Value = hardwareVideoDecoder.Value != HardwareVideoDecoder.None;
+
+ hwAccelCheckbox.Current.BindValueChanged(val =>
+ {
+ hardwareVideoDecoder.Value = val.NewValue ? HardwareVideoDecoder.Any : HardwareVideoDecoder.None;
+ });
+ }
+ }
+}
diff --git a/osu.Game/Overlays/Settings/Sections/GraphicsSection.cs b/osu.Game/Overlays/Settings/Sections/GraphicsSection.cs
index 591848506a..c792098c6d 100644
--- a/osu.Game/Overlays/Settings/Sections/GraphicsSection.cs
+++ b/osu.Game/Overlays/Settings/Sections/GraphicsSection.cs
@@ -25,6 +25,7 @@ namespace osu.Game.Overlays.Settings.Sections
new LayoutSettings(),
new RendererSettings(),
new ScreenshotSettings(),
+ new VideoSettings(),
};
}
}