Commit graph

48 commits

Author SHA1 Message Date
Henrik Rydgård
c38ce2a5be Fix an issue when bringin up the dev menu with transparent background disabled 2024-05-11 21:28:26 +02:00
Henrik Rydgård
1304d04161 Fix a particular type of race condition in file dialog requests
It seems to be possible for a user to back out of a screen before
receiving the "dialog completed" callback on Android, in which case
things pointed to by the callback might be gone.

In this case, it's better to simply not call the callback, rather than
crashing.

This is accomplished by assigning "Tokens" to screens that cause
requests, and in ~Screen, invalidate any pending requests belonging to
that token.
2024-01-18 12:25:55 +01:00
Henrik Rydgård
aeefa4a45a Better variable naming (foundBackgroundScreen) 2023-12-28 10:45:33 +01:00
Herman Semenov
315340fc62 Using const reference for C++17 range-based loop and freq used objects 2023-12-13 17:33:01 +01:00
Henrik Rydgård
76c7540173 First part of UI texture loading refactor 2023-12-12 22:13:15 +01:00
Henrik Rydgård
79ab67e3b2 Run-behind-pause: Fix some edge cases with the transparent background setting 2023-12-11 17:47:19 +01:00
Henrik Rydgård
25ab7b9170 Fix a bunch of edge cases 2023-12-11 15:58:08 +01:00
Henrik Rydgård
e8f70594a4 Implement running the game in the background on the pause screen. Fix some bugs. 2023-12-11 12:41:44 +01:00
Henrik Rydgård
6d51fbc1e6 Refactor UI background rendering. There's now a BackgroundScreen. 2023-12-10 22:26:46 +01:00
Henrik Rydgård
3832b32bbc Add the concept of a background screen 2023-12-10 22:21:48 +01:00
Henrik Rydgård
0ff0ad9140 Remove preRender/postRender methods from screens, in favor of a mode parameter. 2023-12-10 14:09:55 +01:00
Henrik Rydgård
22295a6412 Plumb through a ScreenRenderMode parameter 2023-12-10 13:05:17 +01:00
Henrik Rydgård
600fb7cc22 Minor cleanups 2023-12-10 12:37:35 +01:00
Henrik Rydgård
36a2174ac0 Vulkan: Add indicator of swizzle mode to texture debug names 2023-12-07 10:35:04 +01:00
Henrik Rydgård
707670cfcf Fix time tracking during pause 2023-11-26 19:49:21 +01:00
Henrik Rydgård
b1bc6caaf6 Add a screen focus-tracking mechanism 2023-11-26 19:30:37 +01:00
Henrik Rydgård
211c23e004 Remove the axis event filtering from Screen.cpp again. See #18368 2023-11-16 09:20:40 +01:00
Henrik Rydgård
0fb318c8e9 Revert "Control: Remove the axis event dupe filtering from ScreenManager"
This reverts commit 265a9021fd.
2023-10-18 22:48:23 +02:00
Unknown W. Brackets
847a87f164 UI: Fix crash on input with no screens. 2023-09-30 15:31:00 -07:00
Henrik Rydgård
19e4de5088 Change global UI messages to use an enum instead of strings.
Makes it easier to add new ones and delete outdated ones without missing
any uses.
2023-09-30 11:37:02 +02:00
Henrik Rydgård
ee93e4a2ca Batch axis events all the way into ControlMapper 2023-09-29 11:14:19 +02:00
Henrik Rydgård
b3a2b7a35c Batch axis events coming into the ScreenManager 2023-09-29 11:10:32 +02:00
Henrik Rydgård
1a5d5452fe Batch axis events to the VR code 2023-09-29 11:10:32 +02:00
Henrik Rydgård
b3be6db3ae Remove (probably) unnecessary special case for axis value = 0. 2023-09-29 11:10:32 +02:00
Henrik Rydgård
265a9021fd Control: Remove the axis event dupe filtering from ScreenManager
It's better to have the event sources pre-filter, and most of them now
do that.
2023-09-29 11:10:32 +02:00
Henrik Rydgård
546f9d7743 Some cleanups and fixes to obscure crashes 2023-09-24 13:05:25 +02:00
Henrik Rydgård
5547fe2107 Add missing mutex lock in ScreenManager::RecreateAllViews 2023-09-11 00:31:59 +02:00
Henrik Rydgård
12460d1b8c Avoid double-processing of input event caused by the overlay screen.
Fixes #18070
2023-09-05 16:43:45 +02:00
Henrik Rydgård
109205a56a Add return value to UnsyncTouch 2023-09-04 11:00:06 +02:00
Henrik Rydgård
cd78097e74 Allow dismissing notifications by touching/clicking them.
Fixes #18040

Might do something more elegant in the future.
2023-09-04 10:01:07 +02:00
Henrik Rydgård
797f88bf31 Fix ordering problem with screenshots that was causing crashes.
Fixes #17781
2023-08-23 19:03:33 +02:00
Henrik Rydgård
112b624257 Improve the situation with two transparent screens on top of each other 2023-08-02 13:03:08 +02:00
Henrik Rydgård
26e097923d Fix issue with analog stick menu navigation caused by processing UI events twice per frame 2023-07-06 16:34:18 +02:00
Henrik Rydgård
356cc64eb5 Logging improvements, cleanup 2023-07-06 14:56:52 +02:00
Henrik Rydgård
d6552a7673 Implement an "OverlayScreen" concept. OSD can now render on top of other screens than EmuScreen. 2023-06-20 10:44:47 +02:00
Henrik Rydgård
300a64a86d IconCache: Remove texture objects quite quickly after it stops getting used.
They can be recreated pretty quickly as needed.
2023-06-18 15:24:56 +02:00
Henrik Rydgård
2bee5b64e4 Add new icon cache, for caching small images.
It doesn't try to insert or fetch missing things itself, re-fetching is up to the caller.

This will be required for handling the many achievement icons.

Saving/loading the cache to a single file on disk is implemented but not
hooked up yet. It works without it, though of course will have to
re-fetch things on the next startup.
2023-06-18 14:11:12 +02:00
Henrik Rydgård
3715b1ffa1 Split the functions up, so you don't have to care about the Unsync ones at all in most cases while still getting synced behavior. 2023-05-26 18:41:13 +02:00
Henrik Rydgård
8b431b39ba
Wrap the display globals in a struct (#16998)
* Wrap the display globals in a struct

Makes it easier to search/replace these, for future refactorings.

* Some renaming

* Qt buildfix, also fix the Qt build on Mac (got broken with battery changes)

* Attempt at buildfixing ios

* UWP buildfix
2023-02-25 13:09:44 +01:00
Henrik Rydgård
b97749d623 Assorted initialization cleanup and similar, found by valgrind and warnings 2023-01-30 18:31:49 +01:00
Henrik Rydgård
c27689910e Break out ScrollView from ViewGroup.h, and PopupScreens from UIScreen.h 2023-01-11 10:56:31 +01:00
Henrik Rydgård
07114c6aaf Remove return value from axis functions in API 2023-01-10 10:12:37 +01:00
Henrik Rydgård
a3a949f5e6 Remove touch() return values from screen hierarchy 2023-01-10 10:12:37 +01:00
iota97
c94e9ad73c Support ScrollView for focus position 2021-09-10 02:06:51 +02:00
iota97
ecab31ef8b Keep track of focus position 2021-09-09 17:35:19 +02:00
Henrik Rydgård
3be1ff6ce4 Get the new setup flow going, with a confirmation dialog etc.
Moving the folder while already installed still crashes.
2021-08-04 23:22:43 +02:00
Unknown W. Brackets
b0de7ee0e1 UI: Move to ScreenManager for mapping.
Otherwise we'll detect repeated axis for some devices and you won't be
able to map what you want.
2021-05-23 15:18:21 -07:00
Henrik Rydgård
4f43cff5ca
Move fileutil, net, image loaders, ui to Common. (#13506)
* Move and rename file_util/fd_util to Common/File/FileUtil and DirListing

Let's also move net while we're at it.

Move the ZIM/PNG loaders over to Common.

Move the UI framework into Common

iOS buildfix

* Buildfix

* Buildfixes

* Apple buildfix

* This typo again..

* UWP buildfix

* Fix build of PPSSPPQt, such as it is (it's not in good condition...)

* Guess what? Another buildfix.
2020-10-04 20:48:47 +02:00
Renamed from ext/native/ui/screen.cpp (Browse further)