Skip to content

Releases: ppy/osu-framework

2023.716.0

16 Jul 15:55
46a1944
Compare
Choose a tag to compare

What's Changed

  • Revert iOS frame-rate display fix to resolve issues with running multi-threaded mode by @frenzibyte in #5932

Full Changelog: 2023.715.0...2023.716.0

2023.715.0

14 Jul 16:11
08d091c
Compare
Choose a tag to compare

What's Changed

  • Revert vertex batch buffer changes by @peppy in #5930

Full Changelog: 2023.714.0...2023.715.0

2023.714.0

13 Jul 18:31
2bda3a1
Compare
Choose a tag to compare

What's Changed

  • Improve Clipboard class for use in tests and on Android by @Susko3 in #5919
  • Split texture upload performance test into own TestScene by @peppy in #5922
  • Make frame statistics display usable on mobile platforms by @frenzibyte in #5897
  • Fix screenshots not working on Metal by @frenzibyte in #5925
  • Fix FrameBufferScale not working when PixelSnapping is enabled by @peppy in #5926
  • Fix texture uploads getting corrupted on Metal with non-Apple GPUs by @frenzibyte in #5924
  • Add a fence pool for frame tracking fences by @peppy in #5921
  • Replace most usages of IsDynamicCodeCompiled with IsDynamicCodeSupported by @frenzibyte in #5914
  • Refactor performance test scenes by @peppy in #5927
  • Fix potential texture corruption on Veldrid by @frenzibyte in #5928
  • Revert veldrid update by @peppy in #5929

Breaking changes

GameHost.GetClipboard() is obsolete

The new way to retrieve a Clipboard instance is to resolve it via dependency injection directly. This does not require resolving the GameHost anymore:

 [BackgroundDependencyLoader]
-private void load(GameHost host)
+private void load(Clipboard clipboard)
 {
-    host?.Clipboard.SetText("example");
+    clipboard.SetText("example");
 }

Full Changelog: 2023.710.0...2023.714.0

2023.710.0

10 Jul 12:25
9380489
Compare
Choose a tag to compare

What's Changed

  • Add generated code hints in editorconfig / dotsettings by @peppy in #5908
  • Add back removed comment on creating texture images with no background specification by @frenzibyte in #5910
  • Add basic visual performance test scenes by @frenzibyte in #5904
  • Add source generator for IsLongRunning property by @smoogipoo in #5906
  • Re-use vertex buffers after batch flushes until filled completely in Veldrid by @frenzibyte in #5894
  • Apply code changes required for a future update to .NET 7/8 by @smoogipoo in #5909
  • Fix Veldrid texture uploads allocating new command buffers and resources by @frenzibyte in #5911
  • Add caching for Veldrid staging buffers in favour of CommandList.UpdateBuffer by @frenzibyte in #5913
  • Add test scene covering vertex upload performance by @peppy in #5916
  • Revert recent changes to UBO upload method for non-metal renderers for now by @peppy in #5917

Full Changelog: 2023.707.0...2023.710.0

2023.707.0

07 Jul 11:56
a08e61c
Compare
Choose a tag to compare

What's Changed

  • Add support for alternative clipboard keys (ctrl-insert / shift-delete / shift-insert) by @peppy in #5870
  • Fix android safe area not updating after returning to game with a different orientation by @Joehuu in #5872
  • Update deployment workflow to automatically run on new tag by @peppy in #5873
  • Update veldrid by @peppy in #5876
  • Fix IWindow.Resized being invoked with invalid data during WindowMode switch by @Susko3 in #5880
  • Make IWindow and IGraphicsSurface implementations internal by @Susko3 in #5881
  • Set PerMonitor V2 DPI awareness on Windows by @Susko3 in #5877
  • Work around iOS linker including ApplicationServices framework during compilation by @frenzibyte in #5886
  • Make shaders with passthrough layouts deterministic again by @smoogipoo in #5889
  • Fix game benchmarks being completely broken by @peppy in #5884
  • Reduce complexity overhead (and avoid one copy) when obtaining character SSDQs in SpriteTextDrawNode by @peppy in #5883
  • Reduce VBO buffer count to 2 by @peppy in #5896
  • Fix game tools being rendered outside safe area by @frenzibyte in #5887
  • Fix frame statistics display showing CADisplayLink callback delays under "WndProc" time by @frenzibyte in #5898
  • Pool and limit how many GC boxes can be displayed on FrameStatisticsDisplay at once by @peppy in #5899
  • Fix PerformanceOverlay autosize not working due to incorrect anchor by @peppy in #5900
  • Switch osu!framework iOS projects to use AOT compilation on release configurations by @frenzibyte in #5903
  • Disable front-to-back pass by default on all platforms by @peppy in #5905
  • Avoid initialising textures when unnecessary by @peppy in #5901

Full Changelog: 2023.625.0...2023.707.0

2023.625.0

25 Jun 02:59
ef2abda
Compare
Choose a tag to compare

What's Changed

  • Exclude U+202F NARROW NO-BREAK SPACE from being treated as fixed-width by @bdach in #5869
  • Fix NRT-related issues found game-side by @bdach in #5868

Full Changelog: 2023.624.0...2023.625.0

2023.624.0

24 Jun 15:37
9746d7d
Compare
Choose a tag to compare

What's Changed

  • Fix stray inspection showing up in rider by @peppy in #5856
  • Tidy up hot reload notification toast by @peppy in #5854
  • Improve nested ScrollContainer tests by @Susko3 in #5845
  • Bump OpenTabletDriver version to 0.6.1.0 by @X9VoiD in #5859
  • Cleanup Veldrid shader resource layouts and add header guard by @smoogipoo in #5857
  • Fix possible nullref when binding textures under Veldrid by @smoogipoo in #5862
  • Remove assembly dropdown from visual test browser by @peppy in #5855
  • Ensure triple buffer never uses the same buffer twice in a row by @peppy in #5853
  • Don't apply RenderBufferFormats to effect buffers by @EVAST9919 in #5865
  • Apply NRT to all files where it can be easily applied by @peppy in #5867

Full Changelog: 2023.620.0...2023.624.0

2023.620.0

20 Jun 08:00
147424e
Compare
Choose a tag to compare

What's Changed

  • Add source generator for HandleInputCache by @smoogipoo in #5761
  • Avoid initialising VeldridVertexBuffer immediately by @peppy in #5849
  • Fix item labels not generated while dropdown is in Ready state by @frenzibyte in #5850

Full Changelog: 2023.618.0...2023.620.0

2023.618.0

18 Jun 11:56
86e4ba9
Compare
Choose a tag to compare

What's Changed

  • Add include guards to all shaders by @smoogipoo in #5832
  • Update README.md to include VS Code plugin prerequisites by @Dreamurrrr in #5833
  • Remove Dropdown.AddDropdownItem(text, value) overload by @Susko3 in #5831
  • Add UseLocalVeldrid scripts by @smoogipoo in #5835
  • Fix cases of incorrect nullability in ToString override definitions by @frenzibyte in #5837
  • Add disk cache for shader compilations by @smoogipoo in #5829
  • Remove overrides of PopIn/PopOut in FocusedOverlayContainer by @jai-x in #5834
  • Add new DeferredStagingBuffer type by @smoogipoo in #5838
  • Fix WaitUntilNextFrameReady not being accounted for as Sleep time by @peppy in #5840
  • Move midi initialisation to a thread by @peppy in #5839
  • Enforce presence of all fragment shader inputs in Veldrid by @frenzibyte in #5687
  • Fix Dropdown calling GenerateItemText() before it was fully loaded by @Susko3 in #5836
  • Expose Path.BackgroundColour as a settable property by @smoogipoo in #5830
  • Fix UseLocalVeldrid not adding satellite assemblies to slnf files by @peppy in #5842
  • Fix nested DI candidates not analysed in non-candidate parent types by @smoogipoo in #5841
  • Fix performance when viewing the tail end of a long / zoomed-in waveform by @peppy in #5843
  • Ensure renderer-api-driven frame wait is only invoked when a frame is actually drawn by @peppy in #5846
  • Improve metal frame rendering when more than one display is connected by @peppy in #5847

Breaking Changes

AddDropdownItem(LocalisableString text, T value) has been removed

If you were using this, refactor your code to use LocalisableString GenerateItemText(T value) instead.

Easiest way is to add LocalisableString? CustomDropdownText to your T, or wrap T in a class that has one.
Then simply change GenerateItemText() to use that:

public partial class MyDropdown : Dropdown<T>
{
    protected override LocalisableString GenerateItemText(T value)
        => value.CustomDropdownText ?? base.GenerateItemText(value);
}

Subclasses of FocusedOverlayContainer must now implement Pop{In,Out}()

Previously, subclasses of FocusedOverlayContainer were not forced to implement Pop{In,Out} themselves, despite actually needing to do so for the overlay to actually play transitions out correctly. This has now been changed and inheritors of the class must always implement Pop{In,Out}.

In practice this should not break any reasonable consumers of the class, except for the need to remove any base.Pop{In,Out}() calls in classes that directly inherit FocusedOverlayContainer and call base in Pop{In,Out}().

New Contributors

Full Changelog: 2023.608.0...2023.618.0

2023.608.0

08 Jun 16:22
b5e8a9b
Compare
Choose a tag to compare

What's Changed

  • Expose truncated state of SpriteText by @Joehuu in #5636
  • Remove redundant nullable suppression directives by @frenzibyte in #5824
  • Reduce invalidations of childrenSizeDependencies in edge cases by @smoogipoo in #5825
  • Update Veldrid package to revert CADisplayLink implementation from veldrid-side by @frenzibyte in #5826

Full Changelog: 2023.531.0...2023.608.0