Port ppy#5551 (additive blend no-flush) + ppy#6699 (System.Numerics vectors) + hot-path optimizations#64
Merged
winnerspiros merged 17 commits intoMay 16, 2026
Conversation
Intends to close ppy/osu#37704 On Android, you can choose what file picker you like best. Some OEMs leverage this to implement their own (sometimes ad-ridden, *you know who you are*) file pickers. It appears that while some file pickers return content URIs that end with the actual underlying file's name, some file pickers return their specific gibberish, without a file extension in sight. And they are entitled to do so by the Android Decree of "you shall only ever interact with files via our magic APIs". But then game-side TagLib rolls up, sees a filename without an extension, goes "wots all dis den" and just rejects the file. So to keep the lie up, attempt a little harder to synthesise an actual usable file extension as if this was still a desktop computer with actual files.
…e fix) Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
…/out overloads, Dropdown LINQ) Agent-Logs-Url: https://github.com/winnerspiros/osu-framework/sessions/05a927e1-bc76-443b-b53a-7d5698daeda5 Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
…taging, Path AABB hit-test cache Agent-Logs-Url: https://github.com/winnerspiros/osu-framework/sessions/bbb64d78-3f8b-4d1e-b0b5-2b0331c61dd1 Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
…t-testing Agent-Logs-Url: https://github.com/winnerspiros/osu-framework/sessions/5f125f41-4cc8-4874-a96e-c2e1645fb709 Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
…ive↔mixture) Agent-Logs-Url: https://github.com/winnerspiros/osu-framework/sessions/434e7381-a46c-433a-976b-5dad4011309e Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
- Migrate ~400 files from osuTK.Vector2/3/4 to System.Numerics equivalents - Add Vector3/Vector4 bridge methods to BridgingExtensions - Update Vector2Extensions to use System.Numerics.Vector2; add Normalized(), PerpDot(), NormalizeFast(), PerpendicularRight(), PerpendicularLeft() - Add QuaternionExtensions for osuTK↔System.Numerics Quaternion bridging - Fix UniformMatrix3/4 to bridge osuTK.Vector3/4 ↔ UniformVector3/4 - Fix GLRenderer to convert System.Numerics vectors before passing to GL uniforms - Fix MatrixExtensions local Vector3 variables (use var to avoid alias conflict) - Fix various .Length → .Length() and .LengthSquared → .LengthSquared() calls - Preserve osuTK types: Matrix2/3/4, Quaternion, Color4, DisplayIndex, etc. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
…IMD Distance, AggressiveInlining) Agent-Logs-Url: https://github.com/winnerspiros/osu-framework/sessions/45dcee20-fae6-48b4-bfd7-393ad63e1763 Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
Copilot created this pull request from a session on behalf of
winnerspiros
May 16, 2026 17:46
View session
…stem.Numerics (fixes CI) Agent-Logs-Url: https://github.com/winnerspiros/osu-framework/sessions/01e6a282-c333-469b-8966-0219ab2ca87f Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
winnerspiros
approved these changes
May 16, 2026
… failure Agent-Logs-Url: https://github.com/winnerspiros/osu-framework/sessions/304cd6e9-8a0f-496e-8c5a-a2f5efa05468 Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
winnerspiros
approved these changes
May 16, 2026
…lity CI failure Agent-Logs-Url: https://github.com/winnerspiros/osu-framework/sessions/54bca50a-2296-49ab-87b3-4eb3294fb5a9 Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
winnerspiros
approved these changes
May 16, 2026
…ant qualifiers, unused tuple component) Agent-Logs-Url: https://github.com/winnerspiros/osu-framework/sessions/ec5e0b7a-444f-4bdc-88ed-9fd3d21214d3 Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
winnerspiros
approved these changes
May 16, 2026
…, collection expression) Agent-Logs-Url: https://github.com/winnerspiros/osu-framework/sessions/375c540e-1a56-4ebd-b76e-31fd07b1e5ad Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
winnerspiros
approved these changes
May 16, 2026
There was a problem hiding this comment.
InspectCode found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
…rd properties Agent-Logs-Url: https://github.com/winnerspiros/osu-framework/sessions/640ffaff-331e-4619-b5d4-5abac13c6384 Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
winnerspiros
approved these changes
May 16, 2026
…itialized-value-ignored) Agent-Logs-Url: https://github.com/winnerspiros/osu-framework/sessions/985363f9-ed6d-46f0-852b-6e00f0885e44 Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
winnerspiros
approved these changes
May 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
BackgroundFocused's= new Color4(100, 100, 100, 255)initializer is dead — constructor overwrites it immediately withFrameworkColour.BlueGreen. InspectCode warns because the initializer bypasses the custom setter.BackgroundFocusedin BasicTextBox.cs