1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-12 16:02:55 +08:00

Upgrade to SDL3

This commit is contained in:
Susko3 2024-04-09 09:55:50 +02:00
parent 6c5fad8638
commit 14c26926f3
2 changed files with 20 additions and 16 deletions

View File

@ -22,7 +22,7 @@ using osu.Game.IPC;
using osu.Game.Online.Multiplayer; using osu.Game.Online.Multiplayer;
using osu.Game.Performance; using osu.Game.Performance;
using osu.Game.Utils; using osu.Game.Utils;
using SDL2; using SDL;
namespace osu.Desktop namespace osu.Desktop
{ {
@ -161,7 +161,7 @@ namespace osu.Desktop
host.Window.Title = Name; host.Window.Title = Name;
} }
protected override BatteryInfo CreateBatteryInfo() => new SDL2BatteryInfo(); protected override BatteryInfo CreateBatteryInfo() => new SDL3BatteryInfo();
protected override void Dispose(bool isDisposing) protected override void Dispose(bool isDisposing)
{ {
@ -170,13 +170,14 @@ namespace osu.Desktop
archiveImportIPCChannel?.Dispose(); archiveImportIPCChannel?.Dispose();
} }
private class SDL2BatteryInfo : BatteryInfo private unsafe class SDL3BatteryInfo : BatteryInfo
{ {
public override double? ChargeLevel public override double? ChargeLevel
{ {
get get
{ {
SDL.SDL_GetPowerInfo(out _, out int percentage); int percentage;
SDL3.SDL_GetPowerInfo(null, &percentage);
if (percentage == -1) if (percentage == -1)
return null; return null;
@ -185,7 +186,7 @@ namespace osu.Desktop
} }
} }
public override bool OnBattery => SDL.SDL_GetPowerInfo(out _, out _) == SDL.SDL_PowerState.SDL_POWERSTATE_ON_BATTERY; public override bool OnBattery => SDL3.SDL_GetPowerInfo(null, null) == SDL_PowerState.SDL_POWERSTATE_ON_BATTERY;
} }
} }
} }

View File

@ -13,7 +13,7 @@ using osu.Framework.Platform;
using osu.Game; using osu.Game;
using osu.Game.IPC; using osu.Game.IPC;
using osu.Game.Tournament; using osu.Game.Tournament;
using SDL2; using SDL;
using Squirrel; using Squirrel;
namespace osu.Desktop namespace osu.Desktop
@ -52,16 +52,19 @@ namespace osu.Desktop
// See https://www.mongodb.com/docs/realm/sdk/dotnet/compatibility/ // See https://www.mongodb.com/docs/realm/sdk/dotnet/compatibility/
if (windowsVersion.Major < 6 || (windowsVersion.Major == 6 && windowsVersion.Minor <= 2)) if (windowsVersion.Major < 6 || (windowsVersion.Major == 6 && windowsVersion.Minor <= 2))
{ {
// If users running in compatibility mode becomes more of a common thing, we may want to provide better guidance or even consider unsafe
// disabling it ourselves. {
// We could also better detect compatibility mode if required: // If users running in compatibility mode becomes more of a common thing, we may want to provide better guidance or even consider
// https://stackoverflow.com/questions/10744651/how-i-can-detect-if-my-application-is-running-under-compatibility-mode#comment58183249_10744730 // disabling it ourselves.
SDL.SDL_ShowSimpleMessageBox(SDL.SDL_MessageBoxFlags.SDL_MESSAGEBOX_ERROR, // We could also better detect compatibility mode if required:
"Your operating system is too old to run osu!", // https://stackoverflow.com/questions/10744651/how-i-can-detect-if-my-application-is-running-under-compatibility-mode#comment58183249_10744730
"This version of osu! requires at least Windows 8.1 to run.\n" SDL3.SDL_ShowSimpleMessageBox(SDL_MessageBoxFlags.SDL_MESSAGEBOX_ERROR,
+ "Please upgrade your operating system or consider using an older version of osu!.\n\n" "Your operating system is too old to run osu!"u8,
+ "If you are running a newer version of windows, please check you don't have \"Compatibility mode\" turned on for osu!", IntPtr.Zero); "This version of osu! requires at least Windows 8.1 to run.\n"u8
return; + "Please upgrade your operating system or consider using an older version of osu!.\n\n"u8
+ "If you are running a newer version of windows, please check you don't have \"Compatibility mode\" turned on for osu!"u8, null);
return;
}
} }
setupSquirrel(); setupSquirrel();