osu icon indicating copy to clipboard operation
osu copied to clipboard

Improve storyboards handling by making use of `TransformSequence.Loop()`

Open EVAST9919 opened this issue 1 year ago • 1 comments

Closes https://github.com/ppy/osu/issues/12401

For storyboards with large loop counts:

  • Reduces memory usage
  • Speeds up storyboard loading

Examples of maps fixed: https://osu.ppy.sh/beatmapsets/939511 https://osu.ppy.sh/beatmapsets/1108479 Both are unable to run on master

There was a concern about potential performance issues during rewinding in https://github.com/ppy/osu/issues/12401#issuecomment-1532630432, however I couldn't recplicate. May be due to a bit different approach or I wasn't looking hard enough.

EVAST9919 avatar Mar 03 '24 19:03 EVAST9919

So I did a song and dance with generics due to DrawableStoryboardSprite and DrawableStoryboardAnimation not having a common ancestor, which was a big problem here (this was needed anyway because even with TransformSequence approach we will end up splitting stuff per type, which is no longer the case). In the end looks cleaner I suppose.

EVAST9919 avatar Mar 05 '24 21:03 EVAST9919