mirror of
https://github.com/ppy/osu
synced 2025-01-19 20:40:52 +00:00
Add basic test scene upscaling all skin elements
This commit is contained in:
parent
291a91be66
commit
a373d71b3e
@ -0,0 +1,73 @@
|
||||
// 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.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using osu.Framework.Allocation;
|
||||
using osu.Framework.Graphics.Textures;
|
||||
using osu.Framework.Testing;
|
||||
using osu.Game.IO;
|
||||
using osu.Game.Rulesets;
|
||||
using osu.Game.Screens.Play;
|
||||
using osu.Game.Skinning;
|
||||
|
||||
namespace osu.Game.Tests.Visual.Gameplay
|
||||
{
|
||||
public partial class TestSceneGameplayElementDimensions : TestSceneAllRulesetPlayers
|
||||
{
|
||||
protected override IReadOnlyDependencyContainer CreateChildDependencies(IReadOnlyDependencyContainer parent)
|
||||
{
|
||||
var dependencies = new DependencyContainer(base.CreateChildDependencies(parent));
|
||||
|
||||
// for now this only applies to legacy skins, as modern skins don't have texture-based gameplay elements yet.
|
||||
dependencies.CacheAs<ISkinSource>(new UpscaledLegacySkin(dependencies.Get<SkinManager>()));
|
||||
|
||||
return dependencies;
|
||||
}
|
||||
|
||||
protected override void AddCheckSteps()
|
||||
{
|
||||
}
|
||||
|
||||
protected override Player CreatePlayer(Ruleset ruleset)
|
||||
{
|
||||
var player = base.CreatePlayer(ruleset);
|
||||
player.OnLoadComplete += _ =>
|
||||
{
|
||||
// this test scene focuses on gameplay elements, so let's hide the hud.
|
||||
var hudOverlay = player.ChildrenOfType<HUDOverlay>().Single();
|
||||
hudOverlay.ShowHud.Value = false;
|
||||
hudOverlay.ShowHud.Disabled = true;
|
||||
};
|
||||
return player;
|
||||
}
|
||||
|
||||
private class UpscaledLegacySkin : DefaultLegacySkin, ISkinSource
|
||||
{
|
||||
public UpscaledLegacySkin(IStorageResourceProvider resources)
|
||||
: base(resources)
|
||||
{
|
||||
}
|
||||
|
||||
public event Action? SourceChanged
|
||||
{
|
||||
add { }
|
||||
remove { }
|
||||
}
|
||||
|
||||
public override Texture? GetTexture(string componentName, WrapMode wrapModeS, WrapMode wrapModeT)
|
||||
{
|
||||
var texture = base.GetTexture(componentName, wrapModeS, wrapModeT);
|
||||
|
||||
if (texture != null)
|
||||
texture.ScaleAdjust /= 5f;
|
||||
|
||||
return texture;
|
||||
}
|
||||
|
||||
public ISkin? FindProvider(Func<ISkin, bool> lookupFunction) => this;
|
||||
public IEnumerable<ISkin> AllSources => new[] { this };
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user