Commit graph

56 commits

Author SHA1 Message Date
Henrik Rydgård
8dba3a50f7 imgui: Code cleanup, fix clean shutdown 2024-11-05 11:27:16 +01:00
Henrik Rydgård
4d6905672e Bunch more linting 2024-10-10 11:57:10 +02:00
Henrik Rydgård
e0c12c9547 More lint warning fixes 2024-10-10 10:52:45 +02:00
Herman Semenov
45429bcd85 [Common/Data/File/Input/Net/Serialize/System/UI] Using for based loop C++17 and replaced on structured binding map C++17 2024-09-17 17:42:08 +02:00
Henrik Rydgård
9d48e51205
Merge pull request #19467 from hrydgard/german-check-before-delete
[Common/Core/Windows] Removed excess check pointer before delete or free
2024-09-17 14:27:41 +02:00
Herman Semenov
3c66f149d3 [Common/Core/Windows] Removed excess check pointer before delete or free() 2024-09-17 11:34:42 +02:00
Henrik Rydgård
11210442ce Fix potential crash in reporting screenshot functionality 2024-09-17 11:24:22 +02:00
Henrik Rydgård
e01ca5b057
Logging API change (refactor) (#19324)
* Rename LogType to Log

* Explicitly use the Log:: enum when logging. Allows for autocomplete when editing.

* Mac/ARM64 buildfix

* Do the same with the hle result log macros

* Rename the log names to mixed case while at it.

* iOS buildfix

* Qt buildfix attempt, ARM32 buildfix
2024-07-14 14:42:59 +02:00
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