The warning can be seen since 1f72403ec7 when GCC 13.3.0 is used:
```counterexample
[1540/1898] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/TextureCacheBase.cpp.o
/w/dolphin/Source/Core/VideoCommon/TextureCacheBase.cpp: In member function 'void TextureCacheBase::ApplyMaterialToCacheEntry(const VideoCommon::MaterialResource&, TCacheEntry*)':
/w/dolphin/Source/Core/VideoCommon/TextureCacheBase.cpp:3136:19: warning: loop variable 'texture' creates a copy from type 'const VideoCommon::MaterialResource::TextureLikeReference' [-Wrange-loop-construct]
3136 | for (const auto texture : material_data->GetTextures())
| ^~~~~~~
/w/dolphin/Source/Core/VideoCommon/TextureCacheBase.cpp:3136:19: note: use reference type to prevent copying
3136 | for (const auto texture : material_data->GetTextures())
| ^~~~~~~
| &
```
This is a follow-up to 3e788399b6 (#14153), where a custom
style for `QGroupBox` widgets was introduced when the Fusion style is
used.
However, it was overlooked that the custom QSS does not get along well
with Qt versions older than 6.6.0; on Windows, Qt 6.5.1 is used.
| With Qt 6.5.3 | With Qt 6.11.0 |
| ------------- | -------------- |
| <img alt="Dolphin with Qt 6.5.3" title="Dolphin with Qt 6.5.3" src="https://github.com/user-attachments/assets/9d341eef-0438-44c0-b341-8d0a53d9eb09" /> | <img alt="Dolphin with Qt 6.11.0" title="Dolphin with Qt 6.11.0" src="https://github.com/user-attachments/assets/1bc793d2-c958-413b-b99c-51d064104a75" /> |
Compile checks have been added now to only apply the custom style if
Qt 6.6.0 (or newer) is used.
This can be useful for experimenting with how a game behaves with and
without page table fastmem. As with everything in the JIT menu, this is
only available if Dolphin's debugger is enabled.
I didn't add this in 989a95a when I added the setting itself because we
were under a string freeze for Dolphin 2603a at the time.
Accomplished using `run-clang-tidy` with `performance-move-const-arg,performance-unnecessary-value-param,modernize-pass-by-value`.
Changed arguments to const references, removed them where inappropriate (e.g. sink parameters). Same with std::move.
Manually reviewed each change to make sure that it makes sense, and do something more appropriate if possible.
The only call of `IsScannerReady` was removed by
81be0001a9, and most of the `IsReady`
functions were only called by `IsScannerReady`.
The one exception was in `WiimoteScannerLinux`, which is now a private
function instead of inheriting from the one in `WiimoteScannerBackend`.
The Open in External Editor button makes editing a game INI file easy,
and the Refresh button is only useful if you edit the game INI. You're
not supposed to edit read-only game INIs, so let's not show these two
buttons for read-only game INIs.
I implemented this by hiding the buttons instead of not creating them in
the first place so we don't have to branch on whether the buttons exist
in GameConfigEdit::ConnectWidgets.
Back in 2018, a Presets system was added to DolphinQt's GameConfigEdit.
Presets was a dropdown menu where you could select a particular setting
to add to your custom game INI. Only a small number of settings were
made available, with the intent that more would be added over time.
8 years later, the set of available settings hasn't been expanded at
all, and I don't know of anyone who uses these presets. On top of this,
we have now made good progress in exposing per-game settings
graphically. I think the Presets system is best off removed.
In place of the Presets menu, we now have "Refresh" and "Open in
External Editor" buttons. These more useful actions were previously
hidden away in the Presets menu.
`value` contains 16 bits of data and `remainder` contains 11 bits of
data. When they're added together, we may end up with 17 bits of data,
so the result should be stored as u32 rather than u16.
This fixes `y` being set to 0 (minimum amplitude) when it should be set
to 32 (maximum amplitude).
In the PWM audio we output, instead of each group of 512 bits consisting
of a run of ones followed by a run of zeroes, now each group of 32 bits
consists of a run of ones followed by a run of zeroes. This gets rid of
noise that was previously present.
Doing this for every group of 8 bits instead makes the Game Boy Player
Start-Up Disc not start correctly for some reason. Game Boy Interface
works fine, though.
I also made us not discard the bottom 7 bits of each PCM sample.
According to Extrems, a real GBA doesn't actually output that many bits,
but doing it in this way makes the code simpler anyway.
Fix incorrect scaling of the gap drawn inside enabled breakpoints in
BreakpointWidget when breakpoints are globally disabled and the font
size is changed from the default.
As the font size increased the gap would become larger and its center
would "migrate" downward and rightward until the gap stopped being
visible at all.
Additionally, at small font sizes integer truncation issues could result
in the gap being offset towards the top left.
Now with cancel button and an actual progress bar. For simplicity, we do
two passes on the progress bar, one for loading the NAND into memory and
one for extracting it. The user directory is likely on an SSD, making
the extraction pass invisibly fast.
Mistakenly, MISALIGNED_HOLE_MASK_PAGE_TABLE_BASE was aligned and
MISALIGNED_HOLE_MASK_PAGE_TABLE_BASE_ALIGNED was misaligned. It should
be the other way around.
These variables are unused due to a separate mistake which is corrected
in the next commit.