diff --git a/osu.Android.props b/osu.Android.props
index 4e580a6919..bc382d8f97 100644
--- a/osu.Android.props
+++ b/osu.Android.props
@@ -11,7 +11,7 @@
manifestmerger.jar
-
+
diff --git a/osu.Game.Rulesets.Catch.Tests.iOS/AppDelegate.cs b/osu.Game.Rulesets.Catch.Tests.iOS/AppDelegate.cs
deleted file mode 100644
index 64ff3f7151..0000000000
--- a/osu.Game.Rulesets.Catch.Tests.iOS/AppDelegate.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
-// See the LICENCE file in the repository root for full licence text.
-
-#nullable disable
-
-using Foundation;
-using osu.Framework.iOS;
-using osu.Game.Tests;
-
-namespace osu.Game.Rulesets.Catch.Tests.iOS
-{
- [Register("AppDelegate")]
- public class AppDelegate : GameAppDelegate
- {
- protected override Framework.Game CreateGame() => new OsuTestBrowser();
- }
-}
diff --git a/osu.Game.Rulesets.Catch.Tests.iOS/Application.cs b/osu.Game.Rulesets.Catch.Tests.iOS/Application.cs
index 1fcb0aa427..d097c6a698 100644
--- a/osu.Game.Rulesets.Catch.Tests.iOS/Application.cs
+++ b/osu.Game.Rulesets.Catch.Tests.iOS/Application.cs
@@ -1,9 +1,8 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-#nullable disable
-
-using UIKit;
+using osu.Framework.iOS;
+using osu.Game.Tests;
namespace osu.Game.Rulesets.Catch.Tests.iOS
{
@@ -11,7 +10,7 @@ namespace osu.Game.Rulesets.Catch.Tests.iOS
{
public static void Main(string[] args)
{
- UIApplication.Main(args, null, typeof(AppDelegate));
+ GameApplication.Main(new OsuTestBrowser());
}
}
}
diff --git a/osu.Game.Rulesets.Mania.Tests.iOS/AppDelegate.cs b/osu.Game.Rulesets.Mania.Tests.iOS/AppDelegate.cs
deleted file mode 100644
index a528634f3b..0000000000
--- a/osu.Game.Rulesets.Mania.Tests.iOS/AppDelegate.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
-// See the LICENCE file in the repository root for full licence text.
-
-#nullable disable
-
-using Foundation;
-using osu.Framework.iOS;
-using osu.Game.Tests;
-
-namespace osu.Game.Rulesets.Mania.Tests.iOS
-{
- [Register("AppDelegate")]
- public class AppDelegate : GameAppDelegate
- {
- protected override Framework.Game CreateGame() => new OsuTestBrowser();
- }
-}
diff --git a/osu.Game.Rulesets.Mania.Tests.iOS/Application.cs b/osu.Game.Rulesets.Mania.Tests.iOS/Application.cs
index a508198f7f..75a5a73058 100644
--- a/osu.Game.Rulesets.Mania.Tests.iOS/Application.cs
+++ b/osu.Game.Rulesets.Mania.Tests.iOS/Application.cs
@@ -1,9 +1,8 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-#nullable disable
-
-using UIKit;
+using osu.Framework.iOS;
+using osu.Game.Tests;
namespace osu.Game.Rulesets.Mania.Tests.iOS
{
@@ -11,7 +10,7 @@ namespace osu.Game.Rulesets.Mania.Tests.iOS
{
public static void Main(string[] args)
{
- UIApplication.Main(args, null, typeof(AppDelegate));
+ GameApplication.Main(new OsuTestBrowser());
}
}
}
diff --git a/osu.Game.Rulesets.Osu.Tests.iOS/AppDelegate.cs b/osu.Game.Rulesets.Osu.Tests.iOS/AppDelegate.cs
deleted file mode 100644
index fa40a8536e..0000000000
--- a/osu.Game.Rulesets.Osu.Tests.iOS/AppDelegate.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
-// See the LICENCE file in the repository root for full licence text.
-
-#nullable disable
-
-using Foundation;
-using osu.Framework.iOS;
-using osu.Game.Tests;
-
-namespace osu.Game.Rulesets.Osu.Tests.iOS
-{
- [Register("AppDelegate")]
- public class AppDelegate : GameAppDelegate
- {
- protected override Framework.Game CreateGame() => new OsuTestBrowser();
- }
-}
diff --git a/osu.Game.Rulesets.Osu.Tests.iOS/Application.cs b/osu.Game.Rulesets.Osu.Tests.iOS/Application.cs
index 6ef29fa68e..f9059014a5 100644
--- a/osu.Game.Rulesets.Osu.Tests.iOS/Application.cs
+++ b/osu.Game.Rulesets.Osu.Tests.iOS/Application.cs
@@ -1,9 +1,8 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-#nullable disable
-
-using UIKit;
+using osu.Framework.iOS;
+using osu.Game.Tests;
namespace osu.Game.Rulesets.Osu.Tests.iOS
{
@@ -11,7 +10,7 @@ namespace osu.Game.Rulesets.Osu.Tests.iOS
{
public static void Main(string[] args)
{
- UIApplication.Main(args, null, typeof(AppDelegate));
+ GameApplication.Main(new OsuTestBrowser());
}
}
}
diff --git a/osu.Game.Rulesets.Osu/Skinning/SmokeSegment.cs b/osu.Game.Rulesets.Osu/Skinning/SmokeSegment.cs
index a824f202ec..9d64c354e2 100644
--- a/osu.Game.Rulesets.Osu/Skinning/SmokeSegment.cs
+++ b/osu.Game.Rulesets.Osu/Skinning/SmokeSegment.cs
@@ -252,13 +252,14 @@ namespace osu.Game.Rulesets.Osu.Skinning
renderer.SetBlend(BlendingParameters.Additive);
renderer.PushLocalMatrix(DrawInfo.Matrix);
- TextureShader.Bind();
+ BindTextureShader(renderer);
+
texture.Bind();
for (int i = 0; i < points.Count; i++)
drawPointQuad(points[i], textureRect, i + firstVisiblePointIndex);
- TextureShader.Unbind();
+ UnbindTextureShader(renderer);
renderer.PopLocalMatrix();
}
diff --git a/osu.Game.Rulesets.Taiko.Tests.iOS/AppDelegate.cs b/osu.Game.Rulesets.Taiko.Tests.iOS/AppDelegate.cs
deleted file mode 100644
index 385ba48707..0000000000
--- a/osu.Game.Rulesets.Taiko.Tests.iOS/AppDelegate.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
-// See the LICENCE file in the repository root for full licence text.
-
-#nullable disable
-
-using Foundation;
-using osu.Framework.iOS;
-using osu.Game.Tests;
-
-namespace osu.Game.Rulesets.Taiko.Tests.iOS
-{
- [Register("AppDelegate")]
- public class AppDelegate : GameAppDelegate
- {
- protected override Framework.Game CreateGame() => new OsuTestBrowser();
- }
-}
diff --git a/osu.Game.Rulesets.Taiko.Tests.iOS/Application.cs b/osu.Game.Rulesets.Taiko.Tests.iOS/Application.cs
index 0e3a953728..0b6a11d8c2 100644
--- a/osu.Game.Rulesets.Taiko.Tests.iOS/Application.cs
+++ b/osu.Game.Rulesets.Taiko.Tests.iOS/Application.cs
@@ -1,9 +1,8 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-#nullable disable
-
-using UIKit;
+using osu.Framework.iOS;
+using osu.Game.Tests;
namespace osu.Game.Rulesets.Taiko.Tests.iOS
{
@@ -11,7 +10,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.iOS
{
public static void Main(string[] args)
{
- UIApplication.Main(args, null, typeof(AppDelegate));
+ GameApplication.Main(new OsuTestBrowser());
}
}
}
diff --git a/osu.Game.Tests.iOS/AppDelegate.cs b/osu.Game.Tests.iOS/AppDelegate.cs
deleted file mode 100644
index b13027459f..0000000000
--- a/osu.Game.Tests.iOS/AppDelegate.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
-// See the LICENCE file in the repository root for full licence text.
-
-#nullable disable
-
-using Foundation;
-using osu.Framework.iOS;
-
-namespace osu.Game.Tests.iOS
-{
- [Register("AppDelegate")]
- public class AppDelegate : GameAppDelegate
- {
- protected override Framework.Game CreateGame() => new OsuTestBrowser();
- }
-}
diff --git a/osu.Game.Tests.iOS/Application.cs b/osu.Game.Tests.iOS/Application.cs
index 4678be4fb8..e5df79f3de 100644
--- a/osu.Game.Tests.iOS/Application.cs
+++ b/osu.Game.Tests.iOS/Application.cs
@@ -1,9 +1,7 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-#nullable disable
-
-using UIKit;
+using osu.Framework.iOS;
namespace osu.Game.Tests.iOS
{
@@ -11,7 +9,7 @@ namespace osu.Game.Tests.iOS
{
public static void Main(string[] args)
{
- UIApplication.Main(args, null, typeof(AppDelegate));
+ GameApplication.Main(new OsuTestBrowser());
}
}
}
diff --git a/osu.Game.Tests/Visual/Background/TestSceneTriangleBorderShader.cs b/osu.Game.Tests/Visual/Background/TestSceneTriangleBorderShader.cs
index 07427c242f..711d9ab5ea 100644
--- a/osu.Game.Tests/Visual/Background/TestSceneTriangleBorderShader.cs
+++ b/osu.Game.Tests/Visual/Background/TestSceneTriangleBorderShader.cs
@@ -100,8 +100,10 @@ namespace osu.Game.Tests.Visual.Background
private IUniformBuffer? borderDataBuffer;
- public override void Draw(IRenderer renderer)
+ protected override void BindUniformResources(IShader shader, IRenderer renderer)
{
+ base.BindUniformResources(shader, renderer);
+
borderDataBuffer ??= renderer.CreateUniformBuffer();
borderDataBuffer.Data = borderDataBuffer.Data with
{
@@ -109,9 +111,7 @@ namespace osu.Game.Tests.Visual.Background
TexelSize = texelSize
};
- TextureShader.BindUniformBlock("m_BorderData", borderDataBuffer);
-
- base.Draw(renderer);
+ shader.BindUniformBlock("m_BorderData", borderDataBuffer);
}
protected override bool CanDrawOpaqueInterior => false;
diff --git a/osu.Game/Graphics/Backgrounds/Triangles.cs b/osu.Game/Graphics/Backgrounds/Triangles.cs
index 28a715ca0b..0ee42c69d5 100644
--- a/osu.Game/Graphics/Backgrounds/Triangles.cs
+++ b/osu.Game/Graphics/Backgrounds/Triangles.cs
@@ -306,7 +306,7 @@ namespace osu.Game.Graphics.Backgrounds
};
shader.Bind();
- shader.BindUniformBlock("m_BorderData", borderDataBuffer);
+ shader.BindUniformBlock(@"m_BorderData", borderDataBuffer);
foreach (TriangleParticle particle in parts)
{
diff --git a/osu.Game/Graphics/Backgrounds/TrianglesV2.cs b/osu.Game/Graphics/Backgrounds/TrianglesV2.cs
index 6a34fefa3a..750e96440d 100644
--- a/osu.Game/Graphics/Backgrounds/TrianglesV2.cs
+++ b/osu.Game/Graphics/Backgrounds/TrianglesV2.cs
@@ -249,7 +249,7 @@ namespace osu.Game.Graphics.Backgrounds
};
shader.Bind();
- shader.BindUniformBlock("m_BorderData", borderDataBuffer);
+ shader.BindUniformBlock(@"m_BorderData", borderDataBuffer);
Vector2 relativeSize = Vector2.Divide(triangleSize, size);
diff --git a/osu.Game/Graphics/Sprites/LogoAnimation.cs b/osu.Game/Graphics/Sprites/LogoAnimation.cs
index fbf8717d3c..f02017dc57 100644
--- a/osu.Game/Graphics/Sprites/LogoAnimation.cs
+++ b/osu.Game/Graphics/Sprites/LogoAnimation.cs
@@ -76,17 +76,24 @@ namespace osu.Game.Graphics.Sprites
private IUniformBuffer animationDataBuffer;
private IVertexBatch animationVertexBatch;
- protected override void Blit(IRenderer renderer)
+ protected override void BindUniformResources(IShader shader, IRenderer renderer)
{
- if (DrawRectangle.Width == 0 || DrawRectangle.Height == 0)
- return;
+ base.BindUniformResources(shader, renderer);
animationDataBuffer ??= renderer.CreateUniformBuffer();
animationVertexBatch ??= renderer.CreateQuadBatch(1, 2);
animationDataBuffer.Data = animationDataBuffer.Data with { Progress = progress };
- TextureShader.BindUniformBlock("m_AnimationData", animationDataBuffer);
+ shader.BindUniformBlock(@"m_AnimationData", animationDataBuffer);
+ }
+
+ protected override void Blit(IRenderer renderer)
+ {
+ if (DrawRectangle.Width == 0 || DrawRectangle.Height == 0)
+ return;
+
+ base.Blit(renderer);
renderer.DrawQuad(
Texture,
diff --git a/osu.Game/Rulesets/Mods/ModFlashlight.cs b/osu.Game/Rulesets/Mods/ModFlashlight.cs
index a7889cb98d..f8c3a730f2 100644
--- a/osu.Game/Rulesets/Mods/ModFlashlight.cs
+++ b/osu.Game/Rulesets/Mods/ModFlashlight.cs
@@ -273,7 +273,7 @@ namespace osu.Game.Rulesets.Mods
};
shader.Bind();
- shader.BindUniformBlock("m_FlashlightParameters", flashlightParametersBuffer);
+ shader.BindUniformBlock(@"m_FlashlightParameters", flashlightParametersBuffer);
renderer.DrawQuad(renderer.WhitePixel, screenSpaceDrawQuad, DrawColourInfo.Colour, vertexAction: addAction);
diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj
index 54d6533713..16f780d034 100644
--- a/osu.Game/osu.Game.csproj
+++ b/osu.Game/osu.Game.csproj
@@ -36,7 +36,7 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/osu.iOS.props b/osu.iOS.props
index 8738979c57..5d90119233 100644
--- a/osu.iOS.props
+++ b/osu.iOS.props
@@ -16,6 +16,6 @@
iossimulator-x64
-
+
diff --git a/osu.iOS/AppDelegate.cs b/osu.iOS/AppDelegate.cs
deleted file mode 100644
index 1d29d59fff..0000000000
--- a/osu.iOS/AppDelegate.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
-// See the LICENCE file in the repository root for full licence text.
-
-#nullable disable
-
-using System.Threading.Tasks;
-using Foundation;
-using osu.Framework.iOS;
-using UIKit;
-
-namespace osu.iOS
-{
- [Register("AppDelegate")]
- public class AppDelegate : GameAppDelegate
- {
- private OsuGameIOS game;
-
- protected override Framework.Game CreateGame() => game = new OsuGameIOS();
-
- public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options)
- {
- if (url.IsFileUrl)
- Task.Run(() => game.Import(url.Path));
- else
- Task.Run(() => game.HandleLink(url.AbsoluteString));
- return true;
- }
- }
-}
diff --git a/osu.iOS/Application.cs b/osu.iOS/Application.cs
index 64eb5c63f5..74bd58acb8 100644
--- a/osu.iOS/Application.cs
+++ b/osu.iOS/Application.cs
@@ -1,9 +1,7 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-#nullable disable
-
-using UIKit;
+using osu.Framework.iOS;
namespace osu.iOS
{
@@ -11,7 +9,7 @@ namespace osu.iOS
{
public static void Main(string[] args)
{
- UIApplication.Main(args, null, typeof(AppDelegate));
+ GameApplication.Main(new OsuGameIOS());
}
}
}
diff --git a/osu.iOS/IOSMouseSettings.cs b/osu.iOS/IOSMouseSettings.cs
deleted file mode 100644
index f464bd93b8..0000000000
--- a/osu.iOS/IOSMouseSettings.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-// 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.Graphics;
-using osu.Framework.Localisation;
-using osu.Game.Configuration;
-using osu.Game.Localisation;
-using osu.Game.Overlays.Settings;
-
-namespace osu.iOS
-{
- public partial class IOSMouseSettings : SettingsSubsection
- {
- protected override LocalisableString Header => MouseSettingsStrings.Mouse;
-
- [BackgroundDependencyLoader]
- private void load(OsuConfigManager osuConfig)
- {
- Children = new Drawable[]
- {
- new SettingsCheckbox
- {
- LabelText = MouseSettingsStrings.DisableMouseWheelVolumeAdjust,
- TooltipText = MouseSettingsStrings.DisableMouseWheelVolumeAdjustTooltip,
- Current = osuConfig.GetBindable(OsuSetting.MouseDisableWheel),
- },
- new SettingsCheckbox
- {
- LabelText = MouseSettingsStrings.DisableMouseButtons,
- Current = osuConfig.GetBindable(OsuSetting.MouseDisableButtons),
- },
- };
- }
- }
-}
diff --git a/osu.iOS/OsuGameIOS.cs b/osu.iOS/OsuGameIOS.cs
index 3e79bc6ad6..c49e6907ff 100644
--- a/osu.iOS/OsuGameIOS.cs
+++ b/osu.iOS/OsuGameIOS.cs
@@ -7,10 +7,7 @@ using System;
using Foundation;
using Microsoft.Maui.Devices;
using osu.Framework.Graphics;
-using osu.Framework.Input.Handlers;
-using osu.Framework.iOS.Input;
using osu.Game;
-using osu.Game.Overlays.Settings;
using osu.Game.Updater;
using osu.Game.Utils;
@@ -29,18 +26,6 @@ namespace osu.iOS
// Because we have the home indicator (mostly) hidden we don't really care about drawing in this region.
Edges.Bottom;
- public override SettingsSubsection CreateSettingsSubsectionFor(InputHandler handler)
- {
- switch (handler)
- {
- case IOSMouseHandler:
- return new IOSMouseSettings();
-
- default:
- return base.CreateSettingsSubsectionFor(handler);
- }
- }
-
private class IOSBatteryInfo : BatteryInfo
{
public override double? ChargeLevel => Battery.ChargeLevel;