1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 02:33:02 +08:00
Commit Graph

3000 Commits

Author SHA1 Message Date
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
Bartłomiej Dach
1f4e79d79d
Merge pull request #23711 from timiimit/add-last-edit-time
Store timestamp of beatmap's last edit time in local database
2023-06-07 16:57:24 +02:00
Salman Ahmed
62cb6a98ca Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03:00
Dean Herbert
22f7fe1d79 Rename variable and ensure timestamp is updated even when not saving 2023-06-06 15:11:31 +09:00
timiimit
659fb80c16 Add BeatmapInfo.LastEditTime property 2023-05-31 19:06:41 +02:00
Bartłomiej Dach
96fe7cbe54
Merge branch 'master' into sample-set-controls 2023-05-25 21:58:16 +02:00
Bartłomiej Dach
78f41f7109
Fix spelling 2023-05-25 17:33:41 +02:00
Dean Herbert
058edb5d5f Centralise beatmap playable duration and bounds lookups 2023-05-25 17:32:48 +09:00
Dean Herbert
298989ffd2 Merge branch 'master' into sample-set-controls 2023-05-24 14:03:04 +09:00
Bartłomiej Dach
afdddb0195
Merge pull request #23582 from peppy/placement-blueprint-timeline-combo-fixes
Fix timeline blueprint display not showing correct combo number / colour during placement
2023-05-20 15:02:55 +02:00
Dean Herbert
8d925c8a8a Move combo information updating to an interface level helper method 2023-05-17 17:26:19 +09:00
Dean Herbert
83dcd78826 Make HitSampleInfo.Bank non-nullable 2023-05-16 18:12:56 +09:00
Dean Herbert
ca5e8b290f Add clamping to SliderMultiplier and SliderTickRate at parsing time 2023-05-09 20:53:20 +09:00
Dean Herbert
d10dd6d5ae Merge branch 'master' into base-s-v 2023-05-09 20:52:11 +09:00
Dean Herbert
944da06c10 Rename slider multiplier variable back for now 2023-05-09 16:58:19 +09:00
Bartłomiej Dach
30ce86a582
Merge pull request #23437 from peppy/fix-hold-note-input-test
Fix `TestSceneHoldNoteInput` not displaying correctly
2023-05-08 22:22:33 +02:00
Dan Balasescu
d2380bd840 Remove usages of [ExcludeFromDynamicCompile] 2023-05-08 18:12:56 +09:00
Dean Herbert
d6ce56e6b1 Fix GetMostCommonBeatLength returning zero in case of not timing points 2023-05-08 17:09:08 +09:00
Dean Herbert
f7d44c3013 Rename SliderMultiplier to BaseSliderVelocity 2023-05-08 13:13:09 +09:00
Dean Herbert
0d095c4bb7 Remove non-Live pathway 2023-05-06 23:10:18 +09:00
cdwcgt
4549a865d9
Merge branch 'master' into export 2023-05-04 00:18:01 +09:00
Dean Herbert
f930c4bd0a Move struct to bottom of file 2023-05-03 13:33:31 +09:00
Dean Herbert
48fd99818e Split out default and sample application 2023-05-03 13:30:45 +09:00
Dean Herbert
cca15f930c Refactor applyLegacyInfoAndDefaults for legibility 2023-05-03 13:26:50 +09:00
Dean Herbert
588a4e6196 Move pragma disable to top of LegacyBeatmapDecoder
Makes more sense as it's used multiple times in the class.
2023-05-03 13:19:14 +09:00
Dean Herbert
e3c384c6b5 Merge branch 'master' into sample-control-points 2023-05-02 14:38:39 +09:00
Bartłomiej Dach
436ebdcfcb
Fix beatmap leaderboard test failure
Because the online info reset (which includes online ID reset) was
happening after encoding,
`TestSceneBeatmapLeaderboard.TestLocalScoresDisplayOnBeatmapEdit()`
started failing, as the hash no longer matched expectations after the
first save of the map.
2023-05-01 19:44:15 +02:00
Bartłomiej Dach
f470b2c9cc
Always reset online info when saving local beatmap 2023-05-01 18:17:45 +02:00
OliBomby
8c21fddb5e remove all redundancies from encoded control points 2023-05-01 16:53:38 +02:00
OliBomby
8302bb1f37 dont encode custom sample bank for objects without legacy samples 2023-05-01 14:56:29 +02:00
OliBomby
cef9f73d34 dont assign custom sample bank and volume to hitobjects in non-mania gamemodes
this makes it easier to edit hitsounds in the stable editor after export because the sample control point effects wont get overwritten by the properties of the hitobject
2023-05-01 12:31:27 +02:00
OliBomby
608fa3cc73 Merge remote-tracking branch 'upstream/master' into sample-control-points 2023-04-30 19:47:03 +02:00
OliBomby
139a1d7e6d fix legacy encoder writing sample info while not writing node samples 2023-04-30 17:46:47 +02:00
OliBomby
c44f71a737 remove all regular usage of DifficultyControlPoint 2023-04-26 17:55:38 +02:00
OliBomby
1b4f4372d5 fixed sample control point applying 2023-04-26 14:32:12 +02:00
OliBomby
5accb05f45 fix invalidoperation exception 2023-04-26 14:28:48 +02:00
OliBomby
6c70948681 Remove IContext & add IHasGenerateTicks 2023-04-26 13:10:57 +02:00
OliBomby
c37875bee8 remove hitobject SampleControlPoint usage from LegacyBeatmapEncoder 2023-04-25 16:00:40 +02:00
OliBomby
bf1951fc38 Fix incorrect xmldoc 2023-04-25 12:54:45 +02:00
OliBomby
891b87a5ff remove ApplyLegacyInfo method 2023-04-25 12:52:21 +02:00
OliBomby
ea1e6e9798 Add LegacyContext 2023-04-25 12:12:46 +02:00
OliBomby
a4c6850ab2 made the SampleControlPoint and DifficultyControlPoint obsolete 2023-04-25 11:34:09 +02:00
Daniel Kirschten
6c9a90d1ec
Merge branch 'master' into master 2023-04-22 19:23:52 +02:00
Haspamelodica
e90660c1a4 Switched to lowercase 2023-04-21 02:35:28 +02:00
Haspamelodica
b62de5514c Fixed video importing bug #23259 2023-04-21 02:10:24 +02:00
Dean Herbert
1066dfcbf6 Change default beat divisor to 4
This matches stable, and is a much saner default value.

Will apply to new beatmaps and also beatmaps which don't specify a snap
value in the `.osu` file.
2023-04-20 14:35:13 +09:00
Bartłomiej Dach
e72f103c17
Do not look up metadata for locally-modified beatmaps on save 2023-04-11 23:14:35 +02:00
cdwcgt
ce6a87b4a3
Merge remote-tracking branch 'upstream/master' into export 2023-04-09 15:02:47 +09:00
cdwcgt
de21b4a2f7
use Live<TModel>
Use RealmAccess only when needed
2023-04-09 22:21:15 +09:00
Dean Herbert
da947d8661 Gracefully handle beatmaps specifying images using the video storyboard type 2023-03-13 18:24:16 +09:00
Bartłomiej Dach
72695f7c90
Merge branch 'master' into omit-barline-in-timing-control-point 2023-03-07 22:46:24 +01:00
OliBomby
1fcf41379d Added maintainability patch by bdach 2023-03-06 16:20:36 +01:00
OliBomby
b0cd801405 fix code quality 2023-03-04 19:34:22 +01:00
OliBomby
5146f7c978 using array again in GetSearchableTerms 2023-03-04 16:49:46 +01:00
OliBomby
b90c389ff0 using List instead of Span in GetSearchableTerms 2023-03-04 15:42:35 +01:00
OliBomby
91d206e8d2 Optimised GetSearchableTerms
Reduced memory allocations to 1
2023-03-03 19:21:50 +01:00
Dean Herbert
044b0604b2 Move OmitFirstBarLine to TimingControlPoint 2023-02-28 19:29:31 +09:00
cdwcgt
e84e011d5d Merge branch 'master' into export 2023-02-17 22:15:19 +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
392ff2ffea Reword comment regarding hash transfer to make more sense 2023-01-25 14:11:02 +09:00
Dean Herbert
741ca96853 Make transferCollections argument to private method explicitly required 2023-01-25 14:09:13 +09:00
Dean Herbert
739ec8d81d
Add argument hint for nondescript bool
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-01-25 14:04:30 +09:00
naoey
e6de167adb
Revert split and make collections boolean internal to BeatmapManager 2023-01-24 07:27:26 +09:00
naoey
1c1c9915bb
Split saving new and existing beatmaps into separate flows 2023-01-22 10:27:33 +09:00
naoey
a1b5c9d910
Don't transfer MD5 hashes in collections when copying beatmaps
Fixes #22306.

Changes beatmap saving so that by default it does not transfer
the hashes in collections, and only transfers them when saving the same
difficulty in the editor.

Issue seems to have been introduced in https://github.com/ppy/osu/pull/20641.
2023-01-22 01:14:18 +09:00
Dean Herbert
a1152fa0db
Merge pull request #22147 from Feodor0090/forbid-negative-snap
Forbid negative time snap in editor
2023-01-17 17:35:45 +09:00
Bartłomiej Dach
a9facc076f
Fix difficulty creation flow failing for some ruleset combinations
In current `master`, the difficulty creation flow would retrieve a
"reference beatmap" to copy metadata and timing points from using
`GetPlayableBeatmap()`. But, importantly, it was calling that method
using *the ruleset of the new difficulty* rather than the ruleset of the
existing one. This would make the difficulty creation flow fail if the
beatmap couldn't be converted between rulesets (like taiko to catch).

Fixing to use the reference beatmap's actual ruleset would be trivial,
but there's no real reason to do all of that work anyway when a
`WorkingBeatmap` is available. Because getting a playable beatmap is not
required to copy across metadata and timing points, remove the
`GetPlayableBeatmap()` step entirely to fix the bug.

Closes #22145.
2023-01-14 19:46:55 +01:00
ansel
51e21ee6f0 Make snapped time always positive 2023-01-12 03:38:57 +03:00
Salman Ahmed
5ee0665eac
Merge branch 'master' into pause-imports-during-gameplay 2023-01-09 20:09:17 +03:00
Dean Herbert
811a562608 Don't use bindables to avoid potential cross-usage contamination 2023-01-10 01:10:20 +09:00
Dean Herbert
07dae7dc21 Merge branch 'master' into overlay-panels-context-menu 2023-01-09 19:04:56 +09:00
Dean Herbert
62ffb4fe78 Pause imports during active gameplay 2023-01-09 18:54:11 +09:00
Joseph Madamba
0f6735564e Move and rename nomination response model to singular 2023-01-07 10:54:48 -08:00
Dean Herbert
f908b25dab
Merge pull request #22033 from frenzibyte/decrease-difficulty-list-fadeout
Decrease transition duration of extended difficulty list during hide
2023-01-06 20:13:30 +08:00
Dean Herbert
c0cfa66510
Merge pull request #21754 from Feodor0090/waveform-invalidate
Reload waveform on track replacement in editor
2023-01-06 19:57:27 +08:00
Salman Ahmed
8da7667b0b Decrease transition duration of extended difficulty list during hide 2023-01-05 14:22:17 +03:00
Salman Ahmed
4491a5ba9f Fix editor exporting beatmap combo colours in wrong order 2023-01-03 13:41:08 +03:00
Berkan Diler
182f36c434 Use StringSplitOptions.TrimEntries for string.Split() when possible 2022-12-27 09:41:58 +01:00
Joseph Madamba
bb58976838 Merge remote-tracking branch 'upstream/master' into overlay-panels-context-menu 2022-12-26 17:54:15 -08:00
Bartłomiej Dach
cb2b0d4178
Remove redundant type specs 2022-12-26 23:12:53 +01:00
Berkan Diler
fcbb21c75e Fix typo 2022-12-26 20:38:35 +01:00
Berkan Diler
c7ca4bbba5 Use generic Enum methods 2022-12-26 20:36:39 +01:00
Joseph Madamba
b9dfb8b602 Add localisation for context menu strings 2022-12-25 10:12:02 -08:00
Joseph Madamba
2c2f347e25 Add context menus to overlay panels/cards 2022-12-25 09:57:42 -08:00
Salman Ahmed
30de9ba795 Dispose previous waveform on track reload 2022-12-23 00:35:59 +03:00
Berkan Diler
08d2fbeb8e Use new ArgumentNullException.ThrowIfNull throw-helper API 2022-12-22 21:27:59 +01:00
ansel
20370bd5ae Invalidate waveform on track load 2022-12-22 20:49:09 +03:00
ansel
d0645ce151 Rewrite waveform invalidation 2022-12-22 15:59:51 +03:00
ansel
66a02374da Clear cached waveform on track change in editor 2022-12-22 01:23:24 +03:00
Dean Herbert
4a7d7c6ed9 Use MaxBy in all locations that can and update inspection level to match dotnet-build 2022-12-19 16:47:10 +09:00
Dean Herbert
192536643c Fix some more inspections 2022-12-16 20:21:19 +09:00
Dean Herbert
de079e08dc Fix incorrect ConfigureAwait call in ImportAsUpdate 2022-12-16 18:54:56 +09:00
Dean Herbert
ba54551313 Merge branch 'master' into guard-url-protocols 2022-12-16 18:23:16 +09:00
Dean Herbert
27c497145f Fix the MOTHERLOAD of undetected issues that are now visible thanks to net6.0 2022-12-16 18:16:26 +09:00
cdwcgt
3d6d3b4025
fix weird async logic 2022-12-15 20:59:11 +09:00
Dean Herbert
b8904fe747 Move ImportParameters to better home 2022-12-13 21:41:26 +09:00
Dean Herbert
cb16d62700 Hook up ImportParameter flow with IModelImporter caller methods 2022-12-13 21:29:32 +09:00
Dean Herbert
cf2719d4c0 Convert batchImport parameter to parameters class to allow further import configuration 2022-12-13 19:55:18 +09:00