Commit Graph

41 Commits

Author SHA1 Message Date
Dean Herbert
7f82f10317
Fix beatmap potentially loading in a bad state
Over-caching could mean that a beatmap could load and cause a late
crash. Let's catch it early to avoid such a crash occurring.
2024-02-19 17:18:07 +08:00
Dan Balasescu
b44f77cee1
Update R# + fix inspections 2024-02-02 21:00:28 +09:00
Dean Herbert
e081fa48a2
Fix various other inspections 2023-10-17 17:48:51 +09:00
Dean Herbert
a29f6772cd Fix storyboard being null if file doesn't exist
It's expected that `WorkingBeatmap.Storyboard` is non-null.

An example fail case is in `BeatmapBackgroundWithStoryboard.load`.
2023-06-12 17:22:15 +09:00
Dean Herbert
3978d4babb Crop and disable mipmaps on beatmap panel backgrounds
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.
2023-06-08 16:51:07 +09:00
Dean Herbert
a842f79ad4 Refactor IWorkingBeatmap.Background to GetBackground() 2023-06-08 16:19:32 +09:00
Dan Balasescu
d2380bd840 Remove usages of [ExcludeFromDynamicCompile] 2023-05-08 18:12:56 +09:00
Dean Herbert
7cc4fd4efc Use the exact method stable uses for generating storyboard filenames 2023-01-26 15:09:36 +09:00
Dean Herbert
d15f8c2f3a Fix beatmaps with multiple osb files potentially reading the storyboard from the wrong one
In stable, the storyboard filename is fixed. In lazer, we were always
looking for the first `.osb` in the database. In the case a beatmap
archive housed more than one `.osb` files, this may load the incorrect
one.

Using `GetDisplayString` here feels like it could potentially go wrong
in the future, so I'm open to hard-coding this locally (or using string
manipulation to remove the ` [creator_name]` portion of the beatmap's
filename). Open to opinions on that.

Fixes storyboard playback in https://osu.ppy.sh/beatmapsets/1913687#osu/3947758
2023-01-25 17:11:15 +09:00
Dean Herbert
902dff15e3 Add todo regarding validity check 2022-12-12 13:44:09 +09:00
Dan Balasescu
b4e55f7309 Apply IRenderer changes 2022-08-02 19:50:57 +09:00
Dean Herbert
51071be315 Don't show "missing background" messages to user
Bit of an oversight.

As reported on [twitter](https://twitter.com/emyl___/status/1548627793075998720) and somewhere else i forgot.
2022-07-17 21:20:51 +09:00
Dean Herbert
e81cebf27d Change storyboard parsing logic to not completely fail if only .osb read fails
Changes to allow the storyboard to exist if only the `.osu` is
available. Reads better IMO.
2022-07-07 14:33:20 +09:00
Dean Herbert
c4b6893709 Add local handling of cases where a beatmap's file cannot be found on disk 2022-07-07 14:29:19 +09:00
Dean Herbert
66a01d1ed2 Allow song select to refresh the global WorkingBeatmap after an external update 2022-06-24 21:02:38 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dean Herbert
e010dfb150 Handle virtual track string to avoid throwing later in lookup 2022-04-14 17:33:42 +09:00
Dean Herbert
a7f63fb034 Make providing a custom ResourceStore to LegacyBeatmapSkin optional (for tests only) 2022-03-23 14:57:42 +09:00
Dean Herbert
6eb2c28e41 Rename RealmContextFactory to RealmAccess 2022-01-24 20:38:07 +09:00
Dean Herbert
34aa1bf21d Sanitise and remove some usages of Detach which are no longer required 2022-01-12 17:49:11 +09:00
Dean Herbert
c06b5951fd Fix multiple remaining warnings 2022-01-12 17:49:11 +09:00
Dean Herbert
2ce80cc030 Add back caching in WorkingBeatmapCache 2022-01-12 17:49:11 +09:00
Dean Herbert
8461eaab46 BeatmapSetInfo detach support 2022-01-12 17:00:16 +09:00
Dean Herbert
3811bd8520 Fix some null inspections 2022-01-12 17:00:16 +09:00
Dean Herbert
33060990b7 Temporarily disable WorkingBeatmapCache and fix multiple invalid data flows 2022-01-12 17:00:16 +09:00
Dean Herbert
b8cd3cdbbc Various updates to ruleset and primary key usages to move closer to realm support 2022-01-12 16:57:13 +09:00
Dean Herbert
bc47801cbb Revert "Apply NRT to WorkingBeatmap"
This reverts commit 9e17d7d4e3.
2021-12-22 19:14:18 +09:00
Dean Herbert
9e17d7d4e3 Apply NRT to WorkingBeatmap 2021-12-22 18:41:45 +09:00
Dean Herbert
7344c87b16 Remove RecyclableLazy 2021-12-22 18:18:12 +09:00
Dean Herbert
f9a2db5ec6 Add accessibility to realm factory via IStorageResourceProvider
We might need to rename this class..
2021-12-14 14:19:49 +09:00
Dan Balasescu
8ce5324c8b
Merge pull request #15772 from peppy/remove-model-list-inits
Initialise `BeatmapSet.Beatmaps` list at construction time
2021-11-24 16:41:19 +09:00
Dean Herbert
a7853fc9cc Fix cases of known-non-null 2021-11-24 14:26:25 +09:00
Dean Herbert
729f681938 Update cases where equality can be used instead of primary key equality 2021-11-24 12:49:57 +09:00
Dean Herbert
3b485b5f37 Rewrite PreviewTrackManager to avoid constructing TrackBass locally
This paves the way for the framework code quality change
(https://github.com/ppy/osu-framework/pull/4873) which stops exposing
the constructor.

Most of the restructuring here is required to give `PreviewTrackManager`
an adjustable target to apply the global mute.
2021-11-09 17:38:12 +09:00
Dean Herbert
1e73b09e57 Fix another couple of cases of incorrect string null/empty checking 2021-11-04 14:22:28 +09:00
Dean Herbert
41854f2e16 Fix incorrect check on AudioFile presence 2021-11-04 14:02:09 +09:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
Dean Herbert
09536cd733 Add logging of WorkingBeatmapCache.Invalidate calls 2021-10-14 14:05:33 +09:00
Dean Herbert
1d99bc280f Merge branch 'master' into new-interfaces 2021-10-04 20:42:40 +09:00
Dean Herbert
90225f2082 Hook up all required interfaces to new BeatmapManager 2021-09-30 17:18:39 +09:00
Dean Herbert
e7e0473323 Split out WorkingBeatmapCache from BeatmapManager 2021-09-30 15:40:41 +09:00