Commit Graph

27310 Commits

Author SHA1 Message Date
6bfa4fa643 LogWidget: Use FixedSizeQueue for a log messages buffer
Messages buffer is intended to be of a fixed capacity (MAX_LOG_LINES),
which cannot be achieved by std::queue unless we manually pop() extra elements.
std::queue uses std::deque internally which most likely results in allocations performed continuously.
FixedSizeQueue keeps a single buffer during its entire lifetime, avoiding any allocations except the ones
performed by stored objects.
2019-08-31 21:18:07 +02:00
b3969e91d9 FixedSizeQueue: Bugfixes and improvements
- Fixed a bug where pushing items over queue's size left it in a corrupted state
- For non-trivial types, have clear() and pop() run destructors
- Added emplace(args...)
- Added empty()

FixedSizeQueue has semantics of a circular buffer,
so pushing items continuously is expected to keep overwriting oldest elements gracefully.

Tests have been updated to verify correctness of a previously bugged behaviour
and to verify correctness of destructing non-trivial types
2019-08-31 21:18:07 +02:00
b088fc37d5 LogWidget: Do not use QueueOnObject to construct log queue,
instead store a std::string constructed from string_view and convert to QString just before appending
2019-08-31 11:59:09 +02:00
e746d95d01 LogWidget: Stop update timer when log window is invisible so it doesn't continuously update in the background 2019-08-31 11:57:27 +02:00
7cec8601f1 LogWidget: Remove scrollbar tampering code (doesn't seem to do anything), clear text queue on clearing log 2019-08-31 11:57:07 +02:00
eb7d42dfe8 LogWidget: Replace QTextEdit with QPlainTextEdit for better performance
QTextEdit is heavy, similar in functionality to WordPad,
while QPlainTextEdit is lightweight like Notepad.
Qt documentation recommends using QPlainTextEdit for log viewers,
and it also allows to set automatic cutoff of oldest messages beyond a fixed point,
which we now set to MAX_LOG_LINES (5000)
2019-08-31 10:46:04 +02:00
eab086b880 ConsoleListenerWin: Properly output console logging in UTF-16 so UTF-8 displays properly 2019-08-31 00:44:44 +02:00
c268aa3a46 SI: Reduce logging. 2019-08-28 22:16:41 -04:00
37ef5a54c9 Core: Use move semantics for Renderer::SaveScreenshot 2019-08-28 19:52:35 +02:00
ff8f978eaf Core: Generate screenshot name with timestamps instead of only increasing numbers 2019-08-28 19:52:35 +02:00
9e3b867c6a VideoInterface: start counting half-lines at 0 instead of 1
- Re-organize VideoInterface::Update() to count half-lines starting at 0 instead of 1
- Use horizontal position when checking if we should assert some display interrupt
- Add some more descriptive comments
2019-08-26 20:43:26 -05:00
a3d8a8be06 NetPlay: Remove 'reduce polling rate' option
With the SI poll line count fixed, pretty much all games are polling
twice per frame anyways, making this option superfluous. Since it's a
bit of a gross hack and makes DTMs incompatible with console, let's
just bin it.
2019-08-26 02:11:49 -04:00
87c5e0b30e VolumeVerifier: Add Redump.org downloading 2019-08-25 12:53:19 +02:00
3eb360b818 VolumeVerifier: Add zip support for datfile 2019-08-24 16:37:19 +02:00
22933d8502 VolumeVerifier: Add datfile parsing 2019-08-24 16:37:19 +02:00
88522b7a26 Merge pull request #8327 from JosJuice/more-string-view-regression
DolphinQt: Fix whitelisting USB devices
2019-08-23 21:32:13 +10:00
c1a0a8f84a DolphinQt: Fix whitelisting USB devices
Revert of https://github.com/dolphin-emu/dolphin/pull/8233#discussion_r306223322
2019-08-23 13:22:33 +02:00
5614594f5e Qt/GCMemcardManager: Add an 'All Files' option to the filetype selection. 2019-08-22 20:18:21 +02:00
f414d926c1 ActionReplay: Make use of fmt where applicable
Converts the ActionReplay logging over to using fmt instead of
StringFromFormat.
2019-08-21 17:59:33 -04:00
1ee2234e44 Android Studio 3.5 Updates 2019-08-21 14:43:00 -04:00
7d98c4f3a4 Add SingleChoiceSettingDynamicDescriptions 2019-08-21 13:17:16 -04:00
630de81309 Show Stereoscopy Mode setting value as description 2019-08-21 13:17:16 -04:00
92366fffaf Show Aspect Ratio setting value as description 2019-08-21 13:17:16 -04:00
c7fc9126aa Merge pull request #8190 from JosJuice/android-init
Android: Call UICommon::Init at app start instead of emulation start
2019-08-21 10:14:52 -07:00
998c171b65 Merge pull request #8196 from JosJuice/android-applinkactivity-race
Android: Fix race condition in AppLinkActivity
2019-08-21 10:14:08 -07:00
f79ca65170 UICommon: Remove Android hacks from GameFile 2019-08-21 18:48:52 +02:00
c677268aaf Android: Don't use GameFile/GameFileCache before UICommon::Init
Preparation for the next commit.
2019-08-21 18:46:49 +02:00
9f3f45aa5f Android: Call UICommon::Init at app start instead of emulation start
Much of our native code assumes that UICommon::Init has been called
(for reasons such as wanting to access the user's settings),
so not calling it until emulation start heavily limits what native
code we can use in the Android GUI (except during emulation).
2019-08-21 18:46:49 +02:00
47e1108d57 Android: Add helper class AfterDirectoryInitializationRunner 2019-08-21 18:46:49 +02:00
2a95227f64 Merge pull request #8255 from JosJuice/remove-unsigned-warning
Remove "not signed by Nintendo" warning when installing WADs
2019-08-21 09:38:35 -07:00
55d9f892a4 Merge pull request #7274 from Ebola16/DSA
Android: Dynamic SettingsActivity Titles
2019-08-21 09:01:25 -07:00
5f38386575 Merge pull request #8222 from JosJuice/allow-mismatched-region-settings
Replace "Override Language on NTSC Games" with "Allow Mismatched Region Settings"
2019-08-21 09:00:06 -07:00
bf9427fafe Merge pull request #8314 from JosJuice/menubar-movie-more
DolphinQt: Fix the enabling/disabling of Movie items even more
2019-08-21 08:58:24 -07:00
35eb63de2c Merge pull request #8300 from AdmiralCurtiss/gcmemcard-construction
GCMemcard: Rework construction logic.
2019-08-21 08:56:31 -07:00
288dd649da Merge pull request #8273 from CookiePLMonster/config-threading-fixes
Threading fixes for config layers
2019-08-21 08:55:03 -07:00
bbae0424a1 Merge pull request #8319 from Tilka/mcrfs
Jit64: fix mcrfs
2019-08-20 21:28:52 +01:00
df0ff7f3bb Enable adapter combo on emulation state change only if adapters are supported by current backend 2019-08-20 20:08:14 +02:00
674a66aab2 Merge pull request #8312 from JosJuice/btreal-bitwise-enum
BTReal.cpp: Don't use bitwise operators on enum values
2019-08-20 12:24:57 +10:00
82fe8f61b6 Merge pull request #8308 from CookiePLMonster/cmdline-headless
Make --batch run Dolphin headless
2019-08-20 12:22:50 +10:00
6efab4e3c6 Merge pull request #8280 from CookiePLMonster/alert-msg-box-modality-fix
Make alert messages application modal and not window modal
2019-08-20 10:58:57 +10:00
fe8c9dfa14 WinUpdater: Properly initialize COM on window thread and release ITaskbarList3 on exit 2019-08-19 22:37:48 +02:00
23f335ba91 Core/CPU: Make use of type deduction for scoped locks 2019-08-18 17:39:27 +02:00
2bc9e09456 Core/CPU: Do not yield to UI from CPU methods
Core::RunAsCPUThread may be called from Qt signals, and if code yields to UI there
then it results in infinite recursion
2019-08-18 17:39:26 +02:00
ee85ec95b4 Jit64: fix mcrfs
It was deleting the wrong bits. This fixes issue 10074 (Super Monkey
Ball 2 minigame). I introduced this regression in
0f2c656687.
2019-08-18 03:49:32 +01:00
12ac784a41 Fix "Muted%" OSD message when muting sounds via a hotkey 2019-08-17 12:17:09 +02:00
7b9d43a834 Qt/GCMemcardManager and Qt/GameCubePane: Give detailed error messages for invalid memory cards. 2019-08-15 18:21:48 +02:00
ba8ffd9391 GCMemcard: Check if the Directory's number-of-blocks claim for files matches the BAT, and report an error if it doesn't. 2019-08-15 18:21:48 +02:00
7d4cabea07 GCMemcard: The update counters are interpreted as signed values for the newer-than comparison. 2019-08-15 18:21:47 +02:00
8fc2f0ff2d GCMemcard: Rename MemCardXMb constants to MBIT_SIZE_MEMORY_CARD_X for consistency with other constants. 2019-08-15 18:21:45 +02:00
b54a49eaaf GCMemcard: Rework construction logic to better match our knowledge of the format, while providing better error reporting facilities. 2019-08-15 18:18:56 +02:00