mirror of
https://github.com/ppy/osu
synced 2025-03-04 18:40:24 +00:00
This is an effort to improve general performance at song select. At least on the metal renderer, I can notice very high draw frame overheads related to texture uploads. By reducing the size of the texture uploads to roughly match what is actually being displayed on screen (using a relatively inexpensive crop operation), we can bastly reduce stuttering both during initial load and carousel scroll. You might ask if it's safe to disable mipmapping, but I've tested with lower resolutions and bilinear filtering seems to handle just fine. Bilinear without mipmaps only falls apart when you scale below 50% and we're not going too far past that at minimum game scale, if at all.
30 lines
938 B
C#
30 lines
938 B
C#
// 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.
|
|
|
|
#nullable disable
|
|
|
|
using osu.Framework.Audio.Track;
|
|
using osu.Framework.Graphics.Textures;
|
|
using osu.Game.IO;
|
|
|
|
namespace osu.Game.Beatmaps
|
|
{
|
|
public interface IBeatmapResourceProvider : IStorageResourceProvider
|
|
{
|
|
/// <summary>
|
|
/// Retrieve a global large texture store, used for loading beatmap backgrounds.
|
|
/// </summary>
|
|
TextureStore LargeTextureStore { get; }
|
|
|
|
/// <summary>
|
|
/// Retrieve a global large texture store, used specifically for retrieving cropped beatmap panel backgrounds.
|
|
/// </summary>
|
|
TextureStore BeatmapPanelTextureStore { get; }
|
|
|
|
/// <summary>
|
|
/// Access a global track store for retrieving beatmap tracks from.
|
|
/// </summary>
|
|
ITrackStore Tracks { get; }
|
|
}
|
|
}
|